Accesso Google con Android Firebase – statusCode DEVELOPER_ERROR

Cerco di implementare l’accesso Google nella mia app Android connessa a Firebase. Quando eseguo l’app e preme il pulsante Accedi Google, non succede nulla. E ho ricevuto questo errore in onActivityResult: Status {statusCode = DEVELOPER_ERROR, resolution = null} .

Il mio codice assomiglia a questo:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_GOOGLE_LOGIN) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); if (result.isSuccess()){ GoogleSignInAccount account = result.getSignInAccount(); String emailAddres = account.getEmail(); getGoogleQAuthToken(emailAddres); } } } private void getGoogleQAuthToken(final String emailAddres){ AsyncTask task = new AsyncTask() { String errorMessage = null; @Override protected String doInBackground(Void... params) { String token = null; try { String scope = "oauth2:profile email"; token = GoogleAuthUtil.getToken(MainActivity.this, emailAddres, scope); } catch (IOException transientEx) { errorMessage = "Network error: " + transientEx.getMessage(); } catch (UserRecoverableAuthException e) { Intent recover = e.getIntent(); startActivityForResult(recover, MainActivity.REQUEST_CODE_GOOGLE_LOGIN); } catch (GoogleAuthException authEx) { errorMessage = "Error authenticating with Google: " + authEx.getMessage(); } return token; } 

Ho aggiunto il file di configurazione JSON nell’app / directory e aggiunto le dipendenze:

  buildscript { repositories { jcenter() } dependencies { classpath 'com.google.gms:google-services:1.5.0-beta2' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.+' compile 'com.firebase:firebase-client-android:2.3.0+' /* For Google Play Services */ compile 'com.google.android.gms:play-services-safetynet:8.3.0' compile 'com.google.android.gms:play-services-auth:8.3.0' compile 'com.google.android.gms:play-services:8.3.0' compile('com.afollestad.material-dialogs:core:0.8.3.0@aar') { transitive = true } /* Firebase UI */ compile 'com.firebaseui:firebase-ui:0.2.2' compile 'com.android.support:cardview-v7:23.1.+' compile 'com.android.support:recyclerview-v7:23.1.+' compile 'com.android.support:design:23.1.+' } apply plugin: 'com.google.gms.google-services' 

Sto già cercando le ore di soluzione … Per favore aiuto !!

DEVELOPER_ERROR significa che i servizi di Google Play non sono stati in grado di trovare un client corrispondente dalla console in base al tuo SHA1 e al nome del pacchetto. Puoi aggiungere SHA1s nella pagina delle impostazioni della console Firebase per un determinato nome di pacchetto o aggiungere un nuovo nome di pacchetto tramite l’ app Aggiungi Firebase al pulsante dell’app Android .

In generale, alcune cose da verificare:

  • Assicurati che il nome del tuo pacchetto sia quello che ti aspetti, ad esempio quello nel tuo build.gradle, e che non venga sovrascritto in una variante di build o in un prodotto.
  • Assicurarsi di aver registrato il debug e rilasciare le chiavi SHA1 nella console.

Se la firma di app di Google Play è abilitata per la tua app, sostituirà la tua chiave di firma di rilascio con quella sul server di googles prima della pubblicazione. Puoi verificare se è abilitato da Google Play Console -> Release Management -> App Signing .

Nel mio caso, ho dovuto copiare lo SHA1 dalla sezione “App signing certificate” e aggiungerlo alla sezione delle impostazioni generali dei progetti Firebase, rigenerare il file json, aggiungerlo al progetto e ricaricare l’apk e l’errore è stato risolto.

Ho avuto lo stesso problema. Quello che succede è che hai un debug SHA1 e rilascia SHA1. Normalmente abbiamo usato solo il debug SHA1 e generato il .apk firmato per google play, ma quando usiamo google sigin devi inserire la versione firebase di SHA1.

Per visualizzare la versione SHA1 utilizzare il seguente comando:

  keytool -list -v -keystore C:\ProjectsData\keystore\my-release-key.keystore -alias alias_name 

Quindi inserisci questo SHA1 sul Firebase

https://support.google.com/firebase/answer/7000104

Questa risposta SHA1:

Impronta digitale SHA-1 del certificato del keystore

Spero di averti aiutato.

Il codice di errore 10 è il valore costante di CommonStatusCodes.DEVELOPER_ERROR che implica che il progetto è stato configurato in modo errato

Cosa puoi fare

  • controlla se SHA da PlayStore Console e Firebase Console sono uguali.

    Copia SHA dalla console di Google Play

    inserisci la descrizione dell'immagine qui

incollalo nella Firebase Console

inserisci la descrizione dell'immagine qui

Cos’altro puoi fare?

Mostra messaggi significativi in ​​caso di errore in inglese

  // Google Sign In failed, update UI appropriately Log.w(TAG, "Google sign in failed", e); String messageToDisplay = "Authentication failed."; switch (e.getStatusCode()) { case CommonStatusCodes.API_NOT_CONNECTED: //17 messageToDisplay += "The client attempted to call a method from an API that failed to connect."; break; case CommonStatusCodes.DEVELOPER_ERROR: //10 messageToDisplay += "The application is misconfigured."; break; case CommonStatusCodes.ERROR: //13 messageToDisplay += "The operation failed with no more detailed information."; break; case CommonStatusCodes.INTERNAL_ERROR: //8 messageToDisplay += "An internal error occurred."; break; case CommonStatusCodes.INVALID_ACCOUNT: //8 messageToDisplay += "Invalid account name specified."; break; case CommonStatusCodes.SIGN_IN_REQUIRED: //8 messageToDisplay += "Please Sign In to continue."; break; } Toast.makeText(LoginActivity.this, messageToDisplay, Toast.LENGTH_SHORT).show(); 

Ho creato una nuova chiave SHA1 per il debug utilizzando i seguenti passaggi e ho sostituito la chiave SHA1 nelle impostazioni del mio progetto. ha funzionato per me
-Apri il tuo progetto.
-Fai clic sul menu File -> Nuovo -> Fai clic su Google -> Seleziona Attività di Google Maps -> Fai clic su Fine. -Android studio genererebbe automaticamente il file google_maps_api.xml.
-È ansible ottenere il debug SHA1 chiave in questo file.

Sostituisci questa chiave SHA1 nelle impostazioni del progetto, quindi scarica il nuovo google-services.json dalle impostazioni e sostituiscilo nel progetto mentre il certificato_hash e il client_id cambieranno.

Ho avuto lo stesso problema e ho capito lavorando seguendo questi passaggi:

1. Aggiungi l’impronta digitale DEBUG_KEYSTORE SHA1 al progetto Firebase. usa il seguente comando (MAC / LINUX)

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

2. Ora genera un apk firmato del tuo progetto. Il processo include la generazione di un keystore per la versione di rilascio dell’app. Copia il percorso del file .jks appena generato.

3. Ora generate l’impronta digitale RELEASE_KEYSTORE SHA1 usando il seguente comando

 keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME 

4. Copia il nuovo SHA1 dall’output e aggiungilo come un’altra impronta digitale SHA1 nella console dell’applicazione Firebase.

Ora sei pronto per partire! —- Speranza! aiuta.

Ho avuto lo stesso problema. Ma ha funzionato bene dopo aver pulito e ricostruito il progetto. : D

Penso che tu abbia bisogno di cambiare la versione del tuo servizio di gioco.

Consulta Codalab Android Firebase per aggiungere la dipendenza Auth Firebase al tuo file app / build.gradle.

Prova ad aggiornare il tuo servizio di gioco in Gradle come di seguito:

 /* For Google Play Services */ ... compile 'com.google.android.gms:play-services:9.0.0' ... 

DEVELOPER_ERROR :

L’applicazione non è configurata correttamente. Questo errore non è recuperabile e sarà considerato fatale. Lo sviluppatore dovrebbe esaminare i registri dopo questo per determinare più informazioni utilizzabili.

Durante la creazione della chiave OAuth, è necessario assicurarsi di fornire il nome corretto del pacchetto. Questo significa il nome del pacchetto che compare nel file manifest.

Se stai utilizzando più moduli (ad es. Alcune librerie come FirebaseUI-Android), assicurati che durante la creazione della chiave, usi il nome del pacchetto da cui richiedi l’autenticazione di Google.

Ho avuto lo stesso problema. Dopo 2 giorni di dolore, ho notato che il mio rilascio SHA1 era incorporeo (lo usavo usando il keytool in java / bin e mi dava un brutto SHA1. Probabilmente perché ora Android Studio usa il suo java e non il JDK) . Un modo migliore per ottenere il coretto SHA1 qui l’ impronta digitale SHA-1 del certificato del keystore

Fai clic qui (linea di sviluppatori Google Developer) e crea un nuovo progetto per la console Firebase. Questo link è impostato come impostazione predefinita, quindi non è necessario aggiungerlo manualmente