首页 > 解决方案 > flutter firebase google登录以及如何从多个类访问

问题描述

我有一个有效的谷歌登录和退出从教程中学习

但我不知道如何从另一个班级访问它。我想要从登录屏幕到主屏幕的用户个人资料图片。

_googleSignIn.signIn().then((result) {
                    result.authentication.then((googleKey) {
                      FirebaseAuth.instance
                          .signInWithGoogle(
                              idToken: googleKey.idToken,
                              accessToken: googleKey.accessToken)
                          .then((signedInUser) {                         
                        print(
                            'Signed in as ${signedInUser.displayName} ${signedInUser.photoUrl}');
                        widget.onSignIn();
                      }).catchError((e) {
                        print(e);
                      }).catchError((e) {
                        print(e);
                      }).catchError((e) {
                        print(e);
                      });
                    });
                  });

这是我的登录代码我想从另一个类以及signedInUser.photourl 访问signedInUser.displayName

标签: firebasefirebase-authenticationflutter

解决方案


在第二类中获取当前用户的一种方法是使用身份验证状态侦听器。最简单的方法是:

FirebaseAuth.instance.onAuthStateChanged.listen((user) {
  print(user);
});

每当身份验证状态更改时,都会触发此侦听回调,您可以使用它来读取用户的属性(或更新 UI 以反映身份验证状态)。

您还可以确保在第二类中进行身份验证(复制您现在在第一类中所做的部分工作),或使用共享首选项传递数据。有关所有三种方法的示例,请参阅使用 onAuthStateChanged 使用 Flutter 登录 Firebase


推荐阅读