GoogleSignIn.getLastSignedInAccount()返回包含空字段

时间:2018-01-17 03:13:45

标签: java android google-signin

我正在我的项目中实施Google登录,但这个问题很难解决。根据{{​​3}},当我没有签名时,GoogleSignIn.getLastSignedInAccount(activity)会返回null,这就是它应该做的事情。当我重新启动应用时,它会返回GoogleSignInAccount,但会返回所有字段null

谷歌说:

  

有关可能提供的其他个人资料数据,请参阅GoogleSignInAccount。请注意,任何配置文件字段都可以为null,具体取决于您请求的范围以及用户配置文件包含的信息。

所以我认为问题在于缺少所要求的信息,但我之前正确地将它们定义为:

GoogleSignIn.getClient(activity, GoogleSignInOptions.Builder()
    .requestId()
    .requestProfile()
    .requestEmail()
    .build()
);

此外,所有信息在使用上述相同的客户请求注册后都是完美的GoogleSignInAccount

1 个答案:

答案 0 :(得分:2)

在我的游戏中,当GoogleSignIn.getLastSignedInAccount(activity)返回null时,我打电话 startSigninIntent:

private void startSignInIntent() {
  GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
      GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
  Intent intent = signInClient.getSignInIntent();
  startActivityForResult(intent, RC_SIGN_IN);
}