Flutter:使用 google_sign_in 时出现 PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)

Chi*_*gad 6 android firebase google-signin flutter

我已按照此处的所有步骤进行操作,还在 firebase 控制台中添加了 SHA1 密钥。

这是我的代码

void handleGoogleSignIn() async {
   String errorMessage = "success";

   GoogleSignInAccount _googleSignInAccount = await _googleSignIn.signIn();
   GoogleSignInAuthentication googleSignInAuthentication =
   await _googleSignInAccount.authentication;
   AuthCredential _credential = GoogleAuthProvider.getCredential(
       idToken: googleSignInAuthentication.idToken,
       accessToken: googleSignInAuthentication.accessToken);
   try {
     AuthResult _authResult = await _auth.signInWithCredential(_credential);
   } catch (error) {
     switch (error.code) {
       case "ERROR_INVALID_CREDENTIAL":
         errorMessage = "Invalid credentials";
         break;
       case "ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL":
         errorMessage = "This accouont exists withother credentials";
         break;
       case "ERROR_OPERATION_NOT_ALLOWED":
         errorMessage = "Signing in with Email and Password is not enabled.";
         break;
       default:
         errorMessage = "An undefined Error happened.";
     }
   }
   showErrorOrNavigate(errorMessage);
 }
Run Code Online (Sandbox Code Playgroud)

我创建了一个调试。密钥库按照以下步骤操作

异常:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiException:10:,null)E / flutter(30467):#0 StandardMethodCodec.decodeEnvelope(包:flutter / src / services / message_codecs.dart: 569:7) E/flutter (30467): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33) E/flutter (30467): E/flutter (30467): #2 MethodChannel .invokeMapMethod(包:flutter/src/services/platform_channel.dart:349:48)E/flutter(30467):#3 MethodChannelGoogleSignIn.signIn(包:google_sign_in_platform_interface/src/method_channel_google_sign_in.dart:45:10)`

Firebase 控制台中添加的 SHA1 密钥证明: 在此输入图像描述

我找不到我的错误。

Fre*_*red 8

今天我找到了一个方法来处理它。阅读此讨论后: https://github.com/flutter/friendchat-steps/issues/27

看看这个答案:

在步骤 5 中,签名密钥是配置 Firebase for Android 中所述的调试签名证书 (SHA-1)。您从开发计算机中检索它并将其复制到 Firebase 控制台中的对话框中。

该密钥必须来自您正在开发的机器。如果您同时拥有工作站和笔记本电脑,请确保它与您运行友好聊天的工作站相匹配。

好吧,我寻找一种生成 SHA-1 的新方法并达成此讨论: Generate SHA-1 for Flutter app

尝试一下!我希望它对你有帮助。