Errore di accesso a Google 12500


106

Sto cercando di integrare Google Sign In nella mia app. Non ho un server back-end, sto solo ottenendo i dettagli dell'account Google connesso alla mia app.

L'ho provato per la prima volta utilizzando l'esempio di accesso di Google ma ho ricevuto un errore (non sono state apportate modifiche al codice tranne la stampa dello stacktrace di seguito). Ho appena usato l'esempio SignInActivity perché non ho un server back-end.

 Exception com.google.android.gms.common.api.ApiException: 12500: 
 at com.google.android.gms.common.internal.zzb.zzz(Unknown Source)
 at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
 at com.ewise.android.api.MainActivity.onActivityResult(SignInActivity.java:89)     at android.app.Activity.dispatchActivityResult(Activity.java:7010)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:4187)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:4234)
 at android.app.ActivityThread.-wrap20(ActivityThread.java)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6316)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Codice

 public class SignInActivity extends AppCompatActivity implements
         View.OnClickListener {

     private static final String TAG = "SignInActivity";
     private static final int RC_SIGN_IN = 9001;

     private GoogleSignInClient mGoogleSignInClient;
     private TextView mStatusTextView;

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

         // Views
         mStatusTextView = findViewById(R.id.status);

         // Button listeners
         findViewById(R.id.sign_in_button).setOnClickListener(this);
         findViewById(R.id.sign_out_button).setOnClickListener(this);
         findViewById(R.id.disconnect_button).setOnClickListener(this);

         // [START configure_signin]
         // Configure sign-in to request the user's ID, email address, and basic
         // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                 .requestEmail()
                 .build();
         // [END configure_signin]

         // [START build_client]
         // Build a GoogleSignInClient with the options specified by gso.
         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
         // [END build_client]

         // [START customize_button]
         // Set the dimensions of the sign-in button.
         SignInButton signInButton = findViewById(R.id.sign_in_button);
         signInButton.setSize(SignInButton.SIZE_STANDARD);
         signInButton.setColorScheme(SignInButton.COLOR_LIGHT);
         // [END customize_button]
     }

     @Override
     public void onStart() {
         super.onStart();

         // [START on_start_sign_in]
         // Check for existing Google Sign In account, if the user is already signed in
         // the GoogleSignInAccount will be non-null.
         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
         updateUI(account);
         // [END on_start_sign_in]
     }

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

         // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
         if (requestCode == RC_SIGN_IN) {
             // The Task returned from this call is always completed, no need to attach
             // a listener.
             Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
             handleSignInResult(task);
         }
     }
     // [END onActivityResult]

     // [START handleSignInResult]
     private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
         try {
             GoogleSignInAccount account = completedTask.getResult(ApiException.class);

             // Signed in successfully, show authenticated UI.
             updateUI(account);
         } catch (ApiException e) {
             // The ApiException status code indicates the detailed failure reason.
             // Please refer to the GoogleSignInStatusCodes class reference for more information.
             Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
             e.printStackTrace();
             updateUI(null);
         }
     }
     // [END handleSignInResult]

     // [START signIn]
     private void signIn() {
         Intent signInIntent = mGoogleSignInClient.getSignInIntent();
         startActivityForResult(signInIntent, RC_SIGN_IN);
     }
     // [END signIn]

     // [START signOut]
     private void signOut() {
         mGoogleSignInClient.signOut()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END signOut]

     // [START revokeAccess]
     private void revokeAccess() {
         mGoogleSignInClient.revokeAccess()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END revokeAccess]

     private void updateUI(@Nullable GoogleSignInAccount account) {
         if (account != null) {
             mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));

             findViewById(R.id.sign_in_button).setVisibility(View.GONE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
         } else {
             mStatusTextView.setText(R.string.signed_out);

             findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
         }
     }

     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.sign_in_button:
                 signIn();
                 break;
             case R.id.sign_out_button:
                 signOut();
                 break;
             case R.id.disconnect_button:
                 revokeAccess();
                 break;
         }
     }
  }

Da quello che ho letto, il problema potrebbe essere causato dalla generazione SHA1 .

Ho seguito la guida completa ma a quanto pare non funziona.

Ho copiato SHA1 da gradle signingReport

Variant: debug
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: release
Config: none
----------
Variant: debugAndroidTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: debugUnitTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047

quale potrebbe essere la possibile causa di ciò?

Grazie

PS Potrebbe essere questa una possibile causa?

Google Play services out of date.  Requires 11720000 but found 10932470

Ehi, puoi inserire il tuo codice
Dilip

Ciao @Dilip, ho letteralmente usato questo :) github.com/googlesamples/google-services/tree/master/android/… . Aggiornato comunque
Aaron

1
Quindi, cosa succede ottieni lo stesso errore o succede qualcos'altro. Una cosa per favore fai ancora una volta SHA1 manualmente e metti nella console dello sviluppatore contro la tua APP e controlla il nome del pacchetto e scarica il file google-services.json e mettilo a livello di app.
Dilip

Sì @Dilip ottengo lo stesso errore. Ho barrato il nome del pacco controllato. Ho anche provato a utilizzare un altro keystore ma il risultato è lo stesso.
Aaron

È necessario apportare modifiche al codice per ottenere la chiave API. E sì, dovresti aggiornare i servizi di gioco
OneCricketeer

Risposte:


37

Aggiorna semplicemente i tuoi Google Play Services all'ultima versione (o 11720000 in questo caso). Se utilizzi AVD, le immagini Nexus 5 e 5X supportano Google Play. Una volta che l'emulatore è attivo e in esecuzione, vai al menu Controlli estesi> Google Play, quindi aggiorna.


Come farlo sui dispositivi Samsung?
Pinkesh Darji

7
Questo non è il problema nel mio caso. I servizi di Google Play sono già aggiornati.
Adam Hurwitz

La soluzione di @ zub0r relativa al progetto e ai collegamenti alla privacy dovrebbe essere accettata come risposta corretta.
Adam Hurwitz

Per favore, dov'è il menu dei controlli estesi, sull'emulatore o su Visual Studio?
George Udosen

121

Errore PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

Questo errore 12500 può essere risolto aggiungendo un indirizzo e-mail di supporto al progetto nelle impostazioni del progetto. Apri il link https://console.firebase.google.com/

Seleziona Il tuo progetto e apri la scheda Impostazioni.

Fornisci un'e-mail di supporto valida e riavvia subito l'applicazione.

inserisci qui la descrizione dell'immagine


9
Grazie uomo! Questo errore è piuttosto criptico, può significare qualsiasi cosa menzionata nelle risposte qui. Il mio problema era questo :(
Billda

3
Ho fatto tutto ciò che è stato menzionato nella console per sviluppatori developers.google.com/identity/sign-in/android/sign-in e dopo aver passato una giornata a provare a inserire l'impronta digitale SHA-1 e tutto questo era il problema. Hai aiutato. Molte grazie!
classe Android

Prova ad aggiungere la chiave SHA1 per il tuo progetto @RohitSingh
Maddu Swaroop

1
@MadduSwaroop Se solo ci fosse un modo per votare due volte ... grazie signore
Lefty

1
Mi hai salvato la giornata
Houssem il

46

Controlla se le impronte SHA-1 vengono aggiunte alle impostazioni del progetto Firebase. In caso contrario, trova l'impronta digitale SHA-1 utilizzando

https://developers.google.com/android/guides/client-auth

Inoltre, trova l'impronta digitale SHA-1 della chiave di rilascio utilizzando

keytool -list -v -keystore <keystore path>

Rimuovere <keystore path>con il percorso dell'archivio chiavi.

Quindi aggiungi entrambe le impronte SHA-1 alle impostazioni dei progetti Firebase.

NB: non dimenticare di sostituire google-services.json con google-services.json aggiornato con nuove impronte digitali. Ho perso due giorni con quello.

Durante il debug

Android Studio genera automaticamente ~/.android/debug.keystorealla prima build di debug e lo usa per firmare l'app.

Per ottenere SHA-1 eseguire (password android) ( doc ):

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Questo SHA-1dovrebbe essere aggiunto alle impostazioni dell'app in firebaseper consentire l'utilizzo delle funzionalità di accesso di Google durante il test della build di debug.


2
Come sei sicuro che stia usando Firebase?
PaulG

Indovinato (somiglianza nel codice e senza server). Il progetto Firebase è anche connesso alla console GCP. Possiamo anche modificare le impronte digitali nelle credenziali GCP.
Niyas Nazar

stesso errore con, ma nel mio caso non era correlato a Firebase (non lo sto usando).
Majed DH

Vai a console.developers.google.com/apis/credentials. Aggiungi nuove credenziali (O Auth Client) con la chiave SHA. (Firebase lo fa automaticamente per i nostri progetti Firebase)
Niyas Nazar

Il file google-services.json può essere trovato nella directory dell'app all'interno del tuo progetto. (Vai su Finder / Esplora file)
Mehul Tandale

43

 per l'errore 12500 Devi aggiungere il supporto gmail solo nelle impostazioni di Firebase e per l'errore 10 aggiungi l'impronta digitale ssh nella console di Firebase come vedi nell'immagine


risposta buona e diretta, ho appena configurato il mio account Gmail e bam fa il resto
Ajeett

43

L'email di supporto e anche tutti i collegamenti al progetto e alla privacy sono necessari per il funzionamento di Google SignIn, altrimenti viene visualizzato 12500.

Impostalo su https://console.developers.google.com/apis/credentials nella parte inferiore della seconda scheda denominata "Schermata di consenso OAuth": lì troverai tre link che devono essere configurati.

Questo non è menzionato DA NESSUNA PARTE nelle guide Firebase.


3
Grazie, funziona per me. Ho sprecato quasi intere giornate per risolvere il problema
krishan kumar Sharma

2
Grazie, ho appena aggiunto uno dei "domini autorizzati" ai collegamenti alla privacy e tutto ha funzionato. Mi hai risparmiato alcune ore di tentativi ed errori 💌
Coco

Questa dovrebbe essere una risposta accettata. Ho lottato con quei 2 giorni, senza alcun successo. Google dovrebbe aggiornare le guide, per ora la loro documentazione è fuorviante, la loro guida non funzionerà mai e il codice di errore non dice nulla
user1209216

1
dove aggiungere i collegamenti alla privacy?
Shihab Uddin

4
Nella seconda scheda denominata "Schermata di consenso OAuth" - nella parte inferiore del modulo sono presenti tre link
zub0r

21

Prova ad aggiornare la schermata di consenso OAuth su https://console.developers.google.com/apis/credentials


3
Ho dovuto aggiungere l'email di supporto e poi ha iniziato a funzionare. Questo era in agitazione.
adarsh

Sono necessari anche tutti i collegamenti al progetto e alla privacy, altrimenti vengono lanciati 12500. Questo non è menzionato da nessuna parte.
zub0r

I collegamenti @ zub0r non sono necessari. Fonte: l'ho appena fatto senza di loro.
easycheese

18

Sono rimasto bloccato per un po '.

Assicurati che questi passaggi siano eseguiti-

  • La chiave SHA corretta viene salvata su Firebase Console.
  • Scarica l'ultima versione di google-service.json
  • E l'ultimo e più importante salvataggio del consenso OAuth sotto le credenziali in Google API, OAuth Screen Questo ha richiesto molto tempo per capire. E ha funzionato bene dopo questo.

6
bene. questa dovrebbe essere la risposta accettata per il 2019 qui. il Google stranamente "deve" aggiornare il contenuto all'interno del consenso OAuth
mochadwi

1
Uffa, un altro voto per questo. Era totalmente il mio oscuro problema.
easycheese

12

Sembra che il tuo SHA1 sia stato sovrascritto da Google Play Store. Controlla nel tuo Google Play Store, pannello di avvio, sotto la firma dell'app, verifica se Google Play ha aggiunto un SHA1 aggiuntivo.

E copiare quello SHA1, aggiungere al tuo posto rilevante, farebbe il lavoro.


1
Oh mio Dio! Grazie per il consiglio! Gli app bundle hanno creato il proprio SHA1, quindi le chiavi di rilascio utilizzate localmente (durante la generazione di APK) non sono più quelle corrette.
Jia Tse

Questo è il flusso di lavoro più confuso di sempre. Ma grazie per la punta
DarkNeuron

5

Se c'è ancora qualcuno là fuori con un problema simile, se stai aggiungendo ambiti personalizzati, assicurati che sia un ambito valido. Nel mio caso, ho mescolato gli ambiti di Facebook con gli ambiti di Google e mi ci è voluto un po 'per capirlo!


5

Sto usando Firebase Authentication. Il mio SHA-1 è stato indicato correttamente, anche l'ID client era corretto ma stavo ancora ottenendo 12500.

Si è scoperto che il mio problema era che non indicavo l'e-mail di supporto nelle impostazioni del mio progetto. (Impostazioni -> scheda Generale -> sezione Il tuo progetto (Impostazioni pubbliche)).


3
La stessa cosa è successa anche a me. Ci sono seri problemi di documentazione con i servizi di Google. Vorrei che documentassero tali problemi o almeno mostrassero un errore di facile utilizzo.
ashish-goel

4

Vai al tuo progetto nella console Firebase, apri Impostazioni progetto, aggiungi lì le impronte del tuo certificato SHA. Scarica il file google-services.json aggiornato e aggiungilo alla cartella dell'app Progetti.

Questo ha funzionato per me.

Screenshot della console Firebase


3

Penso che l'errore sia stato causato da SHA1 errato. Non dimenticare che SHA1 è diverso tra la modalità di rilascio e di debug in Android Studio. Invece di usare keytool per ottenere SHA1, puoi usare Gradle project -> Task -> android -> signingReport nello studio android (puoi aprirlo dal menu Visualizza -> Toolwindow -> gradle) per ottenere il rilascio e il debug di SHA1. Dopodiché, per un facile lavoro, è necessario creare 2 credenziali separate con due SHA1 sulla console cloud di Google (google si limita a indicare di crearne 1 utilizzando la versione SHA1, quando sviluppiamo non funzionerà poiché utilizza il debug SHA1).


3

Per prima cosa assicurati di aver registrato la tua app nella console per sviluppatori di Google

Assicurati di avere entrambi i tasti debuge releasenell'applicazione Firebase. Se questo errore viene visualizzato in produzione, aggiungi l' SHA-1 release keyapp di base per il fuoco. Se appare in fase di sviluppo, aggiungi il tuo SHA-1 debug key.

Dove aggiungere l'impronta digitale SHA-1

Ottenere la chiave di debug / rilascio:

keytool -exportcert -list -v -alias [your alias] -keystore [path/to/debug or release.keystore]

Assicurati di scaricare l'aggiornamento google-services.jsonnella tua app.


Stavo fallendo con GoogleSignInResult.getSuccess () che restituiva false e un codice di 12500. In definitiva, era qualcun altro che aveva impostato il mio OAuth con il proprio SHA1 invece della mia chiave di debug. Questo l'ha risolto.
Reckless

@Reckless Sono contento che questo abbia aiutato!
Denn

2

Per me il problema era utilizzare un ClientID "release" con la mia app configurata per il debug. Assicurati di avere una versione e una chiave di debug, usando rispettivamente ogni SHA-1.


2

Se vieni qui da flutter : questo è uno dei casi d'angolo che dobbiamo risolvere come da documentazione qui: https://pub.dev/packages/google_sign_in inserisci qui la descrizione dell'immagine

  • Vai a Google API e servizi
  • Seleziona l'app a cui desideri implementare l'accesso di Google.
  • Quindi fare clic su Abilita APIS e servizi

inserisci qui la descrizione dell'immagine

  • Quindi cerca l'API di Google Peoples

inserisci qui la descrizione dell'immagine

  • Apri la scheda API di Google People e fai clic su Abilita, la tua app potrebbe risolvere il problema.

2

Quando la tua app si autentica con un server di backend o accede alle API di Google dal tuo server di backend, devi passare l'ID client OAuth 2.0 creato per il tuo server al metodo requestIdToken quando crei l'oggetto GoogleSignInOptions, per accedere alle informazioni di base del profilo dell'utente . Inoltre, non dimenticare di inviare l'email di supporto nella schermata di consenso OAuth che si trova nella pagina Credenziali nella console API.


1

Può anche accadere che il compilatore cordova non sia in grado di trovare il file keystore corretto.



Soluzione: prima dell'esecuzione, ionic cordova build androidspecificare le proprietà di firma

Passo 1 : genera un file keystore di debug

Esegui il comando

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

Usa password: android

Passaggio 2: copia il file keystore ( debug.keystore) da ~/.androidaplatform/android directory del progetto corrente

Passaggio 3: creare un file denominato release-signing.properties inplatform/android directory

Passaggio 4: aggiungi i contenuti nel file

storeFile=debug.keystore
keyAlias=androiddebugkey
storePassword=android
keyPassword=android

Nota: questi sono i valori predefiniti. Se hai fornito alias e password personalizzati, usali di conseguenza.

Passaggio 5: ora creaionic cordova build android


1

Ho riscontrato lo stesso problema dopo aver aperto il mio progetto su un altro computer (diverso Android Studio). Nel mio caso, l'ho risolto utilizzando l'Assistente Firebase, che avevo usato inizialmente per configurare Firebase. Apri l'Assistente Firebase (Strumenti> Firebase) e seleziona Autenticazione> Connetti. Questo ha ricollegato il progetto a Firebase e aggiornato le configurazioni


1

Sono rimasto bloccato nel problema di accesso a Google da 2 settimane, finalmente l'ho risolto bene. Lasciami spiegare il motivo. Il problema era correlato a Firebase. In Firebase, hanno menzionato un campo "email di supporto" come opzionale. Ma una volta aggiunto (una qualsiasi delle tue e-mail personali), il problema è stato risolto e ho ottenuto la risposta. Se ricevi un errore come 12501, è correlato alle impostazioni nel tuo account Google.


1

Sono rimasto bloccato per un po '.

Assicurati che questi passaggi siano eseguiti-

Correct SHA key is saved on Firebase Console.
Valid reversed client id.
from fcm console=>select app=>from authentication=>enable google sign-in method

0

Nel mio caso, è a causa dell'ID client di Google sbagliato. Cambio la mia chiave con la chiave elencata in google-services.json(sotto oauth_clientoggetto)


0

Assicurati di aver impostato correttamente le seguenti cose:

  1. Genera l'ID cliente nel tuo progetto Google.
  2. Fornisci la chiave SHA-1 corretta per quell'ID client. (debug / rilascio)
  3. Fornisci il nome del pacchetto corretto per quell'ID client.
  4. Assicurarsi di avere generato client Id in strings.xml, google-services.jsono credentials.jsonfile.

0

https://developers.google.com/identity/sign-in/android/sign-in segui questa documentazione api ma tieni presente che all'interno di WEB_CLIENT_ID utilizza il valore dell'ID client generato all'interno del file google-services.json.

class MainActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener {
private val TAG = "JSAGoogleSignIn"
private val REQUEST_CODE_SIGN_IN = 1234
private val WEB_CLIENT_ID = "354298333018-XXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
private var mAuth: FirebaseAuth? = null

private var mGoogleApiClient: GoogleApiClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var txt_register = findViewById<TextView>(R.id.txt_register)
    txt_register.setOnClickListener {
        var intent = Intent(this@MainActivity, RegisterActivity::class.java)
        finish()
        startActivity(intent)
    }
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(WEB_CLIENT_ID)
            .requestEmail()
            .build()
    mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

    mAuth = FirebaseAuth.getInstance()
    sign_in_button.setOnClickListener {
        val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    }

}


override fun onConnectionFailed(p0: ConnectionResult) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


private fun updateUI(user: FirebaseUser?) {
    if (user != null) {
        Log.e("Email", "Value" + user.email)
    }

}

fun signIn() {

}

override fun onStart() {
    super.onStart()
    val currentUser = mAuth!!.currentUser
    updateUI(currentUser)
}

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if (result.isSuccess) {
            // successful -> authenticate with Firebase
            val account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        } else {
            // failed -> update UI
            updateUI(null)
            Toast.makeText(applicationContext, "SignIn: failed!" + result.status,
                    Toast.LENGTH_SHORT).show()
        }
    }
}

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
    Log.e(TAG, "firebaseAuthWithGoogle():" + acct.id!!)

    val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
    mAuth!!.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success
                    Log.e(TAG, "signInWithCredential: Success!")
                    val user = mAuth!!.currentUser
                    updateUI(user)
                } else {
                    // Sign in fails
                    Log.w(TAG, "signInWithCredential: Failed!", task.exception)
                    Toast.makeText(applicationContext, "Authentication failed!",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
}

0

Nel mio caso, dopo aver aggiunto l'impronta digitale nella console Firebase, è stata automaticamente rilevata dalla console per sviluppatori di Google e ha mostrato le impronte digitali. Ma l'accesso non ha funzionato. Dopo aver esaminato ogni passaggio, ho capito che Google ha invertito il mio pacchetto di file manifest in questo modo com.xxxxxxxx.app. Ma in realtà lo è app.xxxxxxxx.com, nella console per sviluppatori di Google. Quindi ho cancellato la creazione automatica di un'impronta digitale e ho aggiunto l'impronta digitale con il nome del pacchetto corretto. BOOM!!. Ha funzionato.


0

L'errore mi è apparso quando l'opzione Google non era abilitata, come mostrato nell'immagine .

È successo quando ho cambiato l'account di Google e ho dimenticato di attivare l'opzione di connessione con Google.


0

Assicurati che il tuo progetto non debba contenere caratteri speciali inclusi numeri o qualsiasi tipo di simbolo (il nome del progetto deve essere semplice come com.google.testproject)


Questo è il nome del pacchetto del progetto chiamato non il nome del progetto
b devloper

0

Nel mio caso stavo lavorando su un'app non di produzione, il problema era che durante la creazione di un progetto nella console Firebase, c'erano problemi di sincronizzazione delle chiavi SHA-1 avanti e indietro dalle console di sviluppo Firebase e Google. Quindi, ho deciso di creare il progetto prima sulla console per sviluppatori di Google, quindi selezionarlo durante la creazione di un nuovo progetto sulla console Firebase.

Ho anche creato un tutorial per questo, che potrebbe aiutarti.


0

Nel mio caso, il problema era che il mio emulatore non aveva il Play Store. Ho realizzato l'emulatore (denominato API 23) tramite Visual Studio, perché sviluppo anche utilizzando Xamarin.Forms e in Gestione dispositivi Android di Visual Studio puoi selezionare se il tuo emulatore deve avere Google Play Store.

Ho dovuto creare un emulatore tramite l'AVD di Android Studio e assicurarmi che avesse Play Store:

inserisci qui la descrizione dell'immagine


0

Nel mio caso, questo errore si è verificato perché l'autenticazione Android è stata rimossa dal team senior in quanto sembra che non sia necessaria la chiave Android nell'autenticazione back-end. Quindi entrambe le chiavi del client Android e Web sono necessarie nell'accesso a Google.


-1

Prova queste opzioni:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

Richiede la password e inserisci la password. Puoi vedere le impronte SHA1, MD5.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.