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,
};
我刚刚注意到,当我以 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,
};