android - Flutter 谷歌登录为空

标签 android dart firebase-authentication flutter google-signin

调试了好几个小时都没有结果,我放弃了。我一直在通过创建一个连接到 Firebase 实时数据库的应用程序来学习 Flutter,该数据库在 Debug模式下工作,并通过 adb 进行本地安装。但是每当我(或我的任何 friend )通过 adb 以外的东西(例如包管理器或其他东西)安装包时,我都会遇到问题。

首先,这是我的 pubspec.yaml 的相关部分:

dependencies:
  google_sign_in: 3.2.1
  firebase_auth: 0.5.20
  firebase_core: 0.2.5

在我的有状态小部件的开头:

final FirebaseAuth _fAuth = FirebaseAuth.instance;
final GoogleSignIn _gSignIn = new GoogleSignIn();
final DatabaseReference database = FirebaseDatabase.instance.reference().child("users");

以及我代码的相关部分:

googleSignInAccount = await _gSignIn.signIn(); // [1]
authentication = await googleSignInAccount.authentication; // [2]

...

_firebaseUser = await _fAuth.signInWithGoogle(
    idToken: authentication.idToken,
    accessToken: authentication.accessToken);

...

所以问题是,使用较旧的 3.0.5 版本的 google_sign_in 包,我得到错误:

PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null)

已经在第 [1] 点,即使登录对话框从未取消,只是在选择要使用的 google 帐户之后。这在 Debug模式下永远不会发生,就好像谷歌在登录时拒绝生产应用程序一样。当我将 google_sign_in 包更新到版本 3.2.1 时,我在 [2] 点收到以下消息:

NoSuchMethodError: The getter 'authentication' was called on null.
Receiver: null
Tried calling: authentication

这意味着步骤 [1] 不再导致错误,而只是返回 null,因此它在步骤 [2] 失败。我在 Debug模式下没有这个问题,所以登录流程应该没有问题。

注意:我确实使用本地签名 keystore ,但我从来没有遇到过任何问题。 注 2:我也对他们提出了一个问题,因为我找不到任何看起来像我的问题的东西,请参阅 here .

最佳答案

请参阅问题页面 ( here ),通过更新到 google_sign_in 版本 3.2.2 解决了这个问题,它给出了一个明显的错误,所以我实际上可以解决这个问题。

最后,这与 flutter 本身无关(尽管它和 google_sing_in 库没有帮助),而是与 keystore 有关。始终是 keystore 。

关于android - Flutter 谷歌登录为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688715/

相关文章:

java - 安卓 :how to fixed size of image view programatically?

android - HTTP 状态 405 - 方法不允许(jax-rs 服务)

java - 在fragment Activity中添加工具栏

firebase - 如何使用 Flutter 从 Firestore 中的集合中获取特定文档

ios - 使用 Firebase Auth 时应用崩溃,原因 : 'Default app has already been configured.'

android - Eclipse 在调试 ctrl+shift+i 时丢失了检查快捷方式

sqlite - Flutter:在我的应用程序中哪里放置 sqflite 代码?

flutter - 如何为列表中的特定容器设置动画

ios - Firebase Auth 创建用户

javascript - 在 javaScript 中创建用户方法时出现 firebase.auth() 错误