PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null) 使用 Google Play 登录时出现此错误

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

我想使用 Google Play 服务登录,但出现此错误...我尝试了所有可能的解决方案,例如添加 SHA-1、生成客户端 ID、发布同意屏幕,但它仍然给出此异常 这是我的代码片段

Future<AuthCredential?> getGoogleCredential() async {
  print('Inside getGoogleCredential');
  final GoogleSignIn googleSignIn = GoogleSignIn(
    signInOption: SignInOption.games,
     scopes: [GamesApi.gamesScope],
     clientId: 'client id',
    hostedDomain: 'my hosted domain',
  );
  // print('google Sign in is ${googleSignIn.clientId}');
  print('google Sign in is ${googleSignIn.currentUser}');

  final GoogleSignInAccount? googleUser =
      await googleSignIn.signIn().catchError((error) {
    print('Failed to sign in with Google Play Games: $error');
  });

  print('google User is ${googleUser}');

  if (googleUser == null) {
    print('Failed to sign in with Google Play Games.');
    return null;
  }

  final GoogleSignInAuthentication googleAuth =
      await googleUser.authentication;
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  return credential;
}

Future signIn() async {
  final AuthCredential? googleCredential = await getGoogleCredential();
  if (googleCredential != null) {
    await FirebaseAuth.instance.signInWithCredential(googleCredential);
  } else {
    print('Trying signInAnonymously');
    await FirebaseAuth.instance.signInAnonymously();
  }
}
android flutter firebase google-play-services google-play-games
3个回答
4
投票

如果您忘记将 Google Play SHA1 控制台添加到 Firebase 应用程序设置中,也可能会发生这种情况

怎么做:

  1. 转到 Google Play Console -> 您的应用程序 -> 应用程序完整性 -> 应用程序签名 -> 应用程序签名密钥证书 -> 复制 SHA-1 和 SHA-256

  2. 转到 Firebase 项目设置并添加上面的 SHA-1 和 SHA-256

理想情况下,您应该在 Firebase 设置中拥有 6 个证书。

3 SHA-1 -->(开发/发布/播放控制台)

3 SHA-256 -->(开发/发布/播放控制台)


2
投票

基本上错误是ApiException:10。要解决此问题,您需要在谷歌云控制台上使用 SHA1 注册您的应用程序。

前往 https://console.cloud.google.com/

单击凭据 > 创建凭据 >OAuth 客户端 ID

选择您希望应用程序运行的平台。

填写您的应用程序的包名称。

为了填写 SHA1 值,请打开命令行并 cd 到主项目文件夹内的 android 文件夹,然后输入命令 ./gradlewsigningReport,然后按 Enter。完成一些计算后,您将看到扩展 MAC 地址格式的 SHA1 值。

如果您在终端中出现错误,安装您的gradle版本支持的java jdk(截至本回答时,支持java jdk版本14)并将其路径(包括windows环境变量中的bin文件夹)设置为新的道路


0
投票

我的错误出现是因为我删除了第一个版本

debug
buildType 所以我再次添加它:

android {
    // .... other things


   buildTypes {
       release { // This is require for Firebase
           signingConfig signingConfigs.release
       }
       debug {  // This is require for Firebase Emulator
           signingConfig signingConfigs.release
       }
   }
}

我正在本地使用 firebase 模拟器,这是出于调试目的。

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