PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null) 当尝试在 flutter 中使用 googleSignIn 时

问题描述 投票:0回答:4

我已经阅读了我能找到的所有 Stackoverflow 问题和 github 问题,但没有任何效果。

我正在尝试使用 GoogleSignIn 登录并验证日历范围。

我有-

  • 使用 Android Studio 中的 gradle 任务来获取我的 SHA-1 和 SHA256 指纹。
  • 在 Google 云控制台中将 SHA-1 添加到我的 OAuth2 凭据中。
  • 将 SHA-1 和 SHA256 密钥添加到我的 Firebase 控制台
  • 执行此操作后替换了 google-services.json 文件。
  • classpath 'com.google.gms:google-services:4.3.10'
    添加到我项目的 build.gradle 文件中, 和
    apply plugin: 'com.google.gms.google-services' 
    在我的应用程序的 build.gradle 文件中。
  • 在这一切之后
  • 跑了
    flutter clean

我在手机和模拟器上都在调试和发布模式下检查了它。

有人知道我错过了什么吗?

这是我的代码:

这是在 initState() 中:

    _signIn.onCurrentUserChanged.listen((user) async {
      if(user != null) {
        d.log('${user.id}, ${user.email}, ${user.photoUrl}');
        final authUser = (await _signIn.authenticatedClient());
        if(authUser == null) {
          d.log('no user');
        } else {
          _calendar = CalendarApi(authUser);
        }
      }
    });

这是我按下登录按钮的时候:

  void _onPress() {
    if(_calendar == null) {
      _signIn.signIn();
    } else {
      ...
      });
    }
  }

这是我的

flutter doctor -v
:

[√] Flutter (Channel stable, 2.10.3, on Microsoft Windows [Version 10.0.19041.572], locale en-IL)
    • Flutter version 2.10.3 at D:\flutter\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (11 days ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at C:\Users\Itay Rabin\AppData\Local\Android\sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2021.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

[√] IntelliJ IDEA Community Edition (version 2020.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] Connected device (3 available)
    • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86    • Android 9 (API 28) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.19041.572]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 99.0.4844.51

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

这是我得到的错误:

E/flutter ( 4782): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
E/flutter ( 4782): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7)
E/flutter ( 4782): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:177:18)
E/flutter ( 4782): <asynchronous suspension>
E/flutter ( 4782): #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:377:43)
E/flutter ( 4782): <asynchronous suspension>
E/flutter ( 4782): #3      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:248:30)
E/flutter ( 4782): <asynchronous suspension>
E/flutter ( 4782): #4      GoogleSignIn.signIn.isCanceled (package:google_sign_in/google_sign_in.dart:378:5)
E/flutter ( 4782): <asynchronous suspension>
E/flutter ( 4782): 
android firebase flutter google-api google-signin
4个回答
13
投票

我还想添加其他有用的信息:

如果您对于从 Google Play Console 下载的应用程序遇到 Google 登录 问题: PlatformException(sign_in_failed,z1.b:10:,null,null)

您需要将 SHA-1 从 Google Play 控制台添加到 Firebase


2
投票

所以,经过 2 天的尝试,我发现并遵循了这个教程,并让它发挥作用


0
投票

错误代码10表示SHA密钥错误。因此,一旦您使用此命令“

./gradlew signingReport
”创建 SHA 密钥。许多 SHA 密钥将会生成。选择与您的 jks 文件相对应的 SHA 密钥,并将其放入 android 应用程序部分下的 firebase 控制台中,这个教程帮助了我。


0
投票

就我而言,我没有将 serverClientId 或 clientId 添加到 GoogleSignin 对象中。只是一个空物体。我不知道为什么,但进展顺利。

希望能帮助某人。

© www.soinside.com 2019 - 2024. All rights reserved.