首页 > 解决方案 > Google 登录:仅在 Play 商店中出现登录 API 异常 10

问题描述

首先,我已经尝试过这个解决方案:Patrik's Solution。不工作!

如果我直接从 Android Studio 运行它可以完美运行,但是当我创建并安装签名 APK 时会发生异常。会发生什么?

我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
...
  btnGoogleLogin.setOnClickListener(V -> singinGoogle());
...
}
void singinGoogle(){      
        Intent singinIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(singinIntent,GOOGLE_SIGN);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==GOOGLE_SIGN){
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            try{
                GoogleSignInAccount account = task.getResult(ApiException.class);
                if(account!=null) {
                    firebaseAuthWithGoogle(account);
                }

            }catch (ApiException e){

                Toast.makeText(this, "ERROR: "+e.getMessage(), Toast.LENGTH_LONG).show();                
                DialogError de = new DialogError();
                FragmentManager fm = this.getSupportFragmentManager();
                dec.show(fm, "");
            }
        }
    }
    private void firebaseAuthWithGoogle(GoogleSignInAccount account){       
        AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(),null);
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this,task -> {
                    if(task.isSuccessful()){
                        FirebaseUser user = mAuth.getCurrentUser();                       
                    }else {
                        Toast.makeText(this, "The Login as Failed", Toast.LENGTH_SHORT).show();                      
                    }
                });


    }   

标签: androidgoogle-signin

解决方案


我发现了问题,当我生成签名的应用程序时,Play 商店为该应用程序生成了一个新的 SHA1 和 MD5 密钥。所以解决问题的方法就是将 Play Store 密钥复制到 Firebase。

分步解决方案:

  1. 在 Google Play 控制台上打开应用程序。
  2. 转到版本管理 -> 应用签名
  3. 复制你想要的密钥
  4. 在 Firebase 控制台中将新密钥添加到您的项目。

注意:您也可以保留 Android Studio 生成的密钥,因此该应用程序可以在调试和 Google Play 上运行。

希望这可以帮助!


推荐阅读