Flutter Firebase Auth / Google_sign_in 登录失败,状态码=CANCELED

Jan*_*Mer 4 firebase firebase-authentication google-signin flutter

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

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
Run Code Online (Sandbox Code Playgroud)

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

PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null)
Run Code Online (Sandbox Code Playgroud)

网上没找到解决办法,有大佬帮帮我吗?

以下是我的_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;
}
Run Code Online (Sandbox Code Playgroud)

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

这就是我所说的 _signIn()

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

我已经在线删除了 google dev 控制台上的 Firebase-Project 并创建了一个新的。我也试过匿名登录 -> 工作正常

任何帮助表示赞赏

Gai*_*inz 6

我刚刚遇到了同样的问题。我就是这样解决的。

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

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

3)重建你的flutter App并重试。它现在应该可以工作了。


Jan*_*Mer 5

好的,我设法在发布模式下使用 APK 解决了这个问题!

你必须做什么:

在发布模式下构建您的应用程序并将 SHA1 或 SHA256 添加到您的 Firebase 项目。

如果您不知道如何准备应用程序的发布,您可以快速完成此操作。