[英]Access Google Sign-In username globally
我在user.displayName
有Firebase Auth的問題,更具體地說是user.displayName
查詢。 我在應用程序的第一個屏幕上使用強制性Google登錄,因此,我可以保證在所有后續屏幕上,該用戶均具有與之關聯的名稱和userId。
但是,每次我想訪問用戶名時,我現在要做的基本上是使用以下方法再次驗證用戶身份:
GoogleSignInAccount googleUser = await googleSignIn.signInSilently();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await auth.signInWithGoogle(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
futureId = user.uid;
print("signed in " + user.displayName);
return user.displayName;
這顯然會占用不必要的時間和帶寬。
由於用戶之前已經登錄過一次,是否有另一種方式可以做到這一點? 我是否可以訪問由Firebase Auth存儲的用戶數據,以便在其他Firebase產品(如Firestore)中使用?
FirebaseAuth具有一個稱為currentUser
的async
方法,該方法可用於訪問當前經過身份驗證的用戶。
虛擬的例子:
class SomePage extends StatefulWidget {
@override
_SomePageState createState() => new _SomePageState();
}
class _SomePageState extends State<SomePage> {
String _userName = "...";
_getUserAuth(){
FirebaseAuth.instance.currentUser().then((user){
setState((){this._userName= user.displayName;});
});
print(this._userName);
}
@override
Widget build(BuildContext context) {
return new Center(
child: new FlatButton(
child: new Text(this._userName),
onPressed: _getUserAuth,
),
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.