【问题标题】:Flutter : PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) when using google_sign_in颤振:使用 google_sign_in 时的 PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
【发布时间】:2020-08-15 21:07:04
【问题描述】:

我已经按照here 的所有步骤,我还在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);
 }

我创建了一个调试。遵循these 步骤的密钥库

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

在 Firebase 控制台中添加了 SHA1 密钥证明:

我找不到我的错误。

【问题讨论】:

    标签: android firebase flutter google-signin


    【解决方案1】:

    我只添加了一个调试 SHA-1,所以它不适用于许多 Android 设备检查这个答案: https://stackoverflow.com/a/56091158/10459469

    它解决了我的问题,你应该在 firebase 上添加发布和调试 SHA-1

    【讨论】:

      【解决方案2】:

      附加的答案可能会让陷入这种情况的人找到另一种方法。

      如果你设置了:

      1. SHA-1
      2. 包 ID
      3. 下载 Google-Services.json / plist

      但仍然面临这个问题,

      请检查您的OAuth 2.0 Client IDs,如果您发现您的包没有OAuth 2.0 Client IDs,那么您必须创建它。

      这里是实现解决方案的详细步骤:Another answer

      【讨论】:

        【解决方案3】:

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

        看看这个答案:

        在第 5 步中,签名密钥是调试签名证书 (SHA-1) 在为 Android 配置 Firebase 中进行了描述。你从 您的开发机器并将其复制到 Firebase 中的对话框中 控制台。

        此密钥必须来自您正在开发的机器。如果你有 工作站和笔记本电脑,确保它与 你正在运行友好聊天。

        好吧,我正在寻找一种新的方法来生成 SHA-1 并进行以下讨论: Generate SHA-1 for Flutter app

        试试吧!希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 2019-06-30
          • 2022-07-03
          • 2020-01-06
          • 2019-10-04
          • 2019-11-29
          • 2022-11-02
          • 2020-01-31
          • 2021-12-12
          • 2021-11-28
          相关资源
          最近更新 更多