Google 登录失败(ApiException:12501)

Posted

技术标签:

【中文标题】Google 登录失败(ApiException:12501)【英文标题】:Google Sign In Failed (ApiException: 12501) 【发布时间】:2018-10-11 11:09:16 【问题描述】:

我正在尝试使用 Google Play 游戏登录。这是代码:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
            .requestServerAuthCode(getString(R.string.default_web_client_id))
            .build();

googleSignInClient = GoogleSignIn.getClient(this, gso);

我使用以下代码启动 GoogleSignInActivity:

        @Override
        public void onClick(View view) 
            Intent intent = googleSignInClient.getSignInIntent();
            startActivityForResult(intent, SIGN_IN_CODE);
        
    );

然后,它又回到了这里:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == SIGN_IN_CODE)
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try 
            // Google Sign In was successful, authenticate with Firebase
            GoogleSignInAccount account = task.getResult(ApiException.class);
            firebaseAuthWithGoogle(account);
         catch (ApiException e) 
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e);
            updateUI(null);
        
    

所以在这一行:

Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);

我收到此错误:

Google sign in failed: com.google.android.gms.common.api.ApiException: 12501

SHA1 证书没有任何错误,因为我已多次生成它并将其粘贴到 Firebase 控制台中,我在清单文件中也有此权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

我的任何代码都已弃用。我正在使用最新的依赖项:

implementation 'com.google.firebase:firebase-auth:15.0.0'
implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.android.gms:play-services-auth:15.0.0'

我已阅读所有可能的文档。我对此感到非常绝望,这个问题几乎有一个星期......

【问题讨论】:

尝试检查Firebase AuthDemo:首先在 Firebase 控制台中启用 Google 登录,其次您应该创建 SHA1 调试密钥并添加到 Firebase 控制台(您已经完成),第三个创建 android OAuth 2.0客户端 ID,最后从 Firebase 控制台获取生成的 google-service.json 并放入 app 文件夹。希望这会有所帮助。 是的,我已经这样做了。问题是我没有用 Google 登录,我用 Google Play Games 登录。所以我创建了 OAuth 2.0 Android 客户端 ID 并再次生成了 google-service.json 文件。然后我在 Firebase 控制台中启用了 Play Games 登录,并使用秘密客户端 bla bla bla 创建了一个 OAuth 2.0 Web 客户端 ID ...我再次生成了 google-services.json 文件并放入 app 文件夹,然后我得到那个错误Google sign in failed: com.google.android.gms.common.api.ApiException: 12501 奇怪,那么您是否已将您的 Firebase 项目关联到您的 Play 发行商帐户并将您使用的电子邮件列入白名单? 是的,我有。看来我有我需要的一切。但是,错误仍然存​​在... 【参考方案1】:

改变

GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN

GoogleSignInOptions.DEFAULT_SIGN_IN

【讨论】:

请提供您回答的更多描述性上下文,以帮助理解差异

以上是关于Google 登录失败(ApiException:12501)的主要内容,如果未能解决你的问题,请参考以下文章

谷歌登录失败 com.google.android.gms.common.api.ApiException: 10:

使用 android 基本示例登录排行榜失败并出现 com.google.android.gms.common.api.ApiException: 4:

Android Google登录失败com.google.android.gms.common.api.ApiException:12500

Google Play 游戏服务登录错误:ApiException:4

Google play 服务游戏静默登录错误 'com.google.android.gms.common.api.ApiException: 4:'

无法使用 Google Plus 登录,出现 com.google.android.gms.common.api.ApiException: 10: