FirebaseAuth.instance.currentUser!uid 在创建新用户时发生变化(未登录)

FirebaseAuth.instance.currentUser!uid changes when creating a new user (which is not logged in)

我刚刚注意到,当我以 User A 身份登录时,我使用以下方法在应用程序中创建了一个新的 User B

await FirebaseAuth.instance
      .createUserWithEmailAndPassword(
          email: userEmail, password: pass);

然后... User A 的 uid(通过 FirebaseAuth.instance.currentUser!uid 获取)更改为新创建的 UserB 的 uid,尽管 User B 不是已登录。 我刚刚为 User B 创建了帐户,但从未以 User B.

身份登录

在这种情况下,因为我在我的应用程序的几个地方使用 FirebaseAuth.instance.currentUser!uid,它开始“认为”我已经是 User B 而我仍然以 User A 登录].

我以为 FirebaseAuth.instance.currentUser!uid 给你登录用户的 uid 但它看起来不是这样.. 任何人都可以帮助我如何获得真正登录的用户的uid?

非常感谢您的支持!

如上所述,创建新用户将更改 authState,因为新用户将登录。为避免这种情况,您必须创建新的 FirebaseAuth.instance。使用以下代码段。

// Create New firebase app instance.
FirebaseApp tempApp = await Firebase.initializeApp(name: 'Some_Random_String_for_app_name', options: Firebase.app().options);
UserCredential userCredential = await FirebaseAuth.instanceFor(app: tempApp).createUserWithEmailAndPassword(email: email, password: pass);
Map<String, dynamic> _user = {
                'sUID': userCredential.user!.uid,
                'sName': name,
                'sEmail': email,
              };