繁体   English   中英

扑动谷歌登录null

[英]Flutter google sign in null

经过几个小时的调试而没有任何结果,我放弃了。 我一直在通过创建连接到Firebase实时数据库的应用程序来学习Flutter,该数据库在调试模式下工作,通过adb本地安装。 但每当我(或我的任何朋友)通过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帐户之后。 这在调试模式下永远不会发生,就像谷歌在登录时拒绝生产应用程序一样。 当我将google_sign_in包更新到版本3.2.1时,我在点[2]处收到以下消息:

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

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

注意:我确实使用了本地签名密钥库,但我从来没有遇到任何问题。 注2:我也向他们提出了一个问题,因为我找不到任何看起来像我的问题的东西,请看这里

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

最后这与flutter本身无关(虽然它和google_sing_in库没有帮助)但与密钥库有关。 永远是keystore。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM