Flutter Firebase Auth / Google_sign_in无法以statuscode = CANCELED登录

时间:2018-09-21 15:32:34

标签: firebase firebase-authentication flutter google-signin

这是我的pubspec.yaml。我正在使用Flutter:

dependencies:
flutter:
    sdk: flutter

cupertino_icons: ^0.1.2
shared_preferences: ^0.4.2
json_serializable: ^1.2.1
camera: ^0.2.3
path_provider: ^0.4.1
simple_permissions: ^0.1.6
share: ^0.5.3
#Google Sign_In
firebase_auth: ^0.5.20
google_sign_in: ^3.0.5

我无法使用Google登录方法进行身份验证。该窗口正常显示,并且在我的应用抛出错误后:

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

还没有在线找到任何解决方案,有人可以帮我吗?

以下是我的_signIn()方法

Future<FirebaseUser> _signIn() async {

GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
GoogleSignInAuthentication gSA = await googleSignInAccount.authentication;

FirebaseUser user = await auth.signInWithGoogle(
    idToken: gSA.idToken, accessToken: gSA.accessToken);

print("User Name : ${user.displayName}");
return user;
}

我致电GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();后,我的代码崩溃了,所以我猜是我的设置错误。

这就是我所说的_signIn()

MaterialButton(
        child: Text("Google Sign-In"),
        onPressed: (){
          _signIn()
            .then((FirebaseUser user) => print(user))
            .catchError((e) => print(e));
        },
      ),

我已经在线上删除了Google开发人员控制台上的Firebase-Project并创建了一个新的。我也尝试了匿名登录->运行正常

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

我只是遇到了同样的问题。 这就是我解决的方法。

1)获取您的SHA1证书密钥。 (请参阅https://developers.google.com/android/guides/client-auth

2)将SHA1密钥放置在Firebase控制台中

3)重建您的Flutter应用,然后重试。现在应该可以正常工作了。

答案 1 :(得分:2)

好的,所以我设法通过以 release 模式使用APK来解决此问题!

您必须做什么:

以发布模式构建应用,然后将SHA1或SHA256添加到您的Firebase项目中。

如果您不知道如何prepare your app for release,则可以快速执行此操作。