Flutter - 无法使用Firebase身份验证进行登录

时间:2017-12-08 07:45:12

标签: android firebase-authentication flutter

我的Android Flutter应用已使用Firebase身份验证进行Google登录。在调试模式下一切都很好,但在发布模式下失败。我已在Firebase控制台中为调试和发布密钥库添加了SHA-1指纹,并已更新到最新的google-services.json。

问题似乎是我从未获得Firebase用户。此方法始终返回null:

Future<FirebaseUser> _getCurrentUser() async {
  FirebaseAuth firebaseAuth = FirebaseAuth.instance;
  if (firebaseAuth.currentUser() != null) {
    return await firebaseAuth.currentUser();
  }

  return null;
}

codelabs示例也没有工作。它正在返回GoogleSignInUser,但它没有在控制台中创建Firebase用户:

Future<GoogleSignInAccount> _ensureLoggedIn() async {
  GoogleSignInAccount user = _googleSignIn.currentUser;
  if (user == null) user = await _googleSignIn.signInSilently();
  if (user == null) {
    user = await _googleSignIn.signIn();
    analytics.logLogin();
  }
  if (_auth.currentUser == null) {
    GoogleSignInAuthentication credentials =
        await _googleSignIn.currentUser.authentication;
    await _auth.signInWithGoogle(
      idToken: credentials.idToken,
      accessToken: credentials.accessToken,
    );
  }

  return user;
}

我之前在原生Android应用中实施了Firebase身份验证就好了。我已经阅读了其他几个关于此的堆栈溢出帖子,但我觉得我已经尝试了一切。任何帮助将不胜感激!

更新

在发布版本中,如果我没有设置任何读/写规则,我可以读取和写入数据库。我仍然无法创建FirebaseUser。我可以创建GoogleSignInAccount,但这不会创建Firebase用户。

1 个答案:

答案 0 :(得分:0)

我设法让它发挥作用。我刚刚将所有依赖项更新到最新版本并定位到最新版本的android,然后使用此guide更新了我的项目,并使用与此example中相同的方式对Firebase进行了身份验证。

这些是我的依赖项:

google_sign_in: 2.0.0
firebase_analytics: 0.2.0
firebase_auth: 0.4.0
firebase_database: 0.3.1
firebase_admob: 0.2.2

希望这有助于某人!