Ошибка входа в Google, исключение API 12500

Я добавил свой SHA1 в свой проект firebase, я также добавил SHA256. Тем не менее я продолжаю получать ошибку ниже. Я также включил метод входа в Google. Пожалуйста, у меня нет вариантов.

Мой build.gradle

implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'

Сообщение об ошибке:

W/SigninActivity: Google sign in failed
com.google.android.gms.common.api.ApiException: 12500: 
    at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
    at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
    at org.aac.detailor.SigninActivity.onActivityResult(SigninActivity.java:83)
    at android.app.Activity.dispatchActivityResult(Activity.java:6294)
    at android.app.ActivityThread.deliverResults(ActivityThread.java:3829)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3876)
    at android.app.ActivityThread.access$1300(ActivityThread.java:178)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1519)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5631)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

Это моя активность входа в систему, я выполнил шаги аутентификации в соответствии с документацией из аутентификации firebase.

Моя активность входа:

public class SigninActivity extends AppCompatActivity {

FirebaseAuth auth;
GoogleSignInClient mGoogleSignInClient;

SignInButton googleSignIn;
FirebaseAuth.AuthStateListener authStateListener;

private static final int RC_SIGN_IN = 111;
private static final String TAG = "SigninActivity";

public static String username = "org.aac.trial.username";
public static String email = "org.aac.trial.email";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signin);

    auth = FirebaseAuth.getInstance();

    auth = FirebaseAuth.getInstance();
    authStateListener = firebaseAuth -> {
        if (firebaseAuth.getCurrentUser() != null) {
            Toast.makeText(SigninActivity.this, "Welcome "+
                    firebaseAuth.getCurrentUser().getDisplayName(), Toast.LENGTH_LONG).show();
Intent intent = new Intent(SigninActivity.this, MainActivity.class);
            startActivity(intent);
            return;
        }
    };
    auth.addAuthStateListener(authStateListener);

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken("891757993158-tle1db5q6ems263o723uejcfcn486ush.apps.googleusercontent.com")
            .requestEmail()
            .build();
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

    googleSignIn = findViewById(R.id.signInGoogle);
    googleSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            signIn();
        }
    });
}

private void signIn() {
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    startActivityForResult(signInIntent, RC_SIGN_IN);
}

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

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        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);
            Toast.makeText(SigninActivity.this, "Google Sign In Failed \n"+e, Toast.LENGTH_LONG).show();
        }
    }
}

private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
    Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());

    AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
    auth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithCredential:success");
                        FirebaseUser user = auth.getCurrentUser();
                        updateUI(user);
                        Toast.makeText(SigninActivity.this, "Welcome "+user.getDisplayName(), Toast.LENGTH_SHORT).show();
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithCredential:failure", task.getException());
                        Toast.makeText(SigninActivity.this, "Authentication Failed.", Toast.LENGTH_LONG).show();

                    }

                    // ...
                }
            });
}

private void updateUI(FirebaseUser user) {
    Intent intent = new Intent(SigninActivity.this, MainActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString(username, user.getDisplayName());
    bundle.putString(email, user.getEmail());
    intent.putExtras(bundle);
    startActivity(intent);
}

}

вы пробовали искать ошибку?

karan 04.02.2019 10:41

Возможный дубликат Ошибка входа в Google 12500

karan 04.02.2019 10:41

@kpa_robor вы используете режим отладки или деблокирования?

Rajat 04.02.2019 11:01

@KaranMer да, я сделал, но безрезультатно

kpa_robor 04.02.2019 11:10

@Rajat Я использую режим выпуска

kpa_robor 04.02.2019 11:11

@kpa_robor предполагает, что в студии Android слева внизу в BUILD VARIANTS вы выбираете выпуск. 1) Нажмите на раздел Gradle (справа вверху) 2) Нажмите на :app -> Task-> Android-> дважды щелкните signingReport 3) Затем вы получите SHA1 (для выпуска) в консоли, скопируйте его и поместите в проект firebase

Rajat 04.02.2019 11:18

@Rajat Спасибо за ваше время. Кажется, я использовал режим отладки, отпустите меня, как вы заявили

kpa_robor 04.02.2019 12:10
1
7
574
2

Ответы 2

Привет, kpa_robor У меня однажды была похожая проблема, когда я пытался войти в свою учетную запись Google, приложение не позволяло мне войти. Проверьте, подключено ли ваше приложение к firebase, см. рисунок ниже, он должен быть таким.

Надеюсь, это решит вашу проблему!

проблема все еще существует, пожалуйста, любые другие предложения

kpa_robor 04.02.2019 23:46
  1. Посмотрите, установили ли вы отпечатки пальцев SHA-1, SHA-256 для созданного вами приложения firebase. После добавления соответствующих отпечатков пальцев загрузите google-services.json и снова замените его в своем проекте.

SHA-1 and SHA-256 certificate fingerprint

  1. после этого убедитесь, что вы предоставили соответствующий метод входа в консоль Firebase. Я включил метод входа через Google

Другие вопросы по теме