gpt4 book ai didi

firebase - 全局访问 Google 登录用户名

转载 作者:IT王子 更新时间:2023-10-29 06:51:56 25 4
gpt4 key购买 nike

我在 flutter 中遇到了 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 有一个名为 currentUserasync 方法,可用于访问当前经过身份验证的用户。

虚拟示例:

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,
),
);
}
}

关于firebase - 全局访问 Google 登录用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50028524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com