[Google登录:SignIn API例外10仅在Play商店中

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

首先,我已经尝试过以下解决方案:Patrik's Solution。没用!

如果我直接从Android Studio运行,则可以完美运行,但是当我创建并安装Signed 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();                      
                    }
                });


    }   
android google-login
1个回答
0
投票

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

分步解决方案:

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

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

希望这会有所帮助!

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