flutter firebase google登录以及如何从多个类访问

Posted

技术标签:

【中文标题】flutter firebase google登录以及如何从多个类访问【英文标题】:flutter firebase google sign in and how to access from multiple classes 【发布时间】:2019-04-26 12:30:12 【问题描述】:

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

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

_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.displayName 以及signedInUser.photourl

【问题讨论】:

您可以确保用户也从第二类登录,附加一个身份验证状态侦听器,或者使用例如共享首选项将数据传递给第二类。有关所有三个的示例,请参阅***.com/questions/45353730/… 【参考方案1】:

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

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

只要身份验证状态发生变化,就会触发此侦听回调,您可以使用它来读取用户的属性(或更新 UI 以反映身份验证状态)。

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

【讨论】:

以上是关于flutter firebase google登录以及如何从多个类访问的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?

仅当用户存在于 Firebase 中时 Flutter google 登录?

在 Flutter 中使用 Firebase/Google 登录时无法注销并重定向到 LoginPage

在 iOS 上退出 Google 登录无法在 Flutter Firebase 中运行

有没有办法确定用户是通过自定义 Firebase 帐户还是通过 Flutter 中的 Google 帐户登录的?

请求的身份验证范围不足 - 在 Flutter 中使用 Firebase 从 Google 登录获取生日时出错