2016-05-17 14 views
45

Sono usign segno gplus in, e ottenere questo errore alla volta mi trovo in onActivityResult ....Errore: Stato {statusCode = DEVELOPER_ERROR, risoluzione = null}

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

    if (requestCode == 0) { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     if (result.isSuccess()) { 

      GoogleSignInAccount acct = result.getSignInAccount(); 
//    Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail()); 

      mEmail = acct.getEmail(); 
      String mFullName = acct.getDisplayName(); 
      String mGoogleplusId = acct.getId(); 


      SocialUser user = new SocialUser(); 
      user.setType("googleplus"); 

      user.setEmail(mEmail); 
      user.setFullname(mFullName); 
      user.setId(mGoogleplusId + ""); 
      loginParams.put("email_id", mEmail); 
      loginParams.put("googlePlusId", mGoogleplusId); 
      loginParams.put("full_name", mFullName); 
      loginParams.put("registrationType", "googleplus"); 
      SignUpService(user); 


     } else { 
      Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

E io sto chiamando per il login gplus sul pulsante clic. Su clcking seguente pulsante codice viene eseguito ....

GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .build(); 
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this) 

      .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions) 
      .build(); 


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
    startActivityForResult(signInIntent, 0); 

E sto geetng questo errore ...

Status{statusCode=DEVELOPER_ERROR, resolution=null} 

su questa linea ....

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 

Si prega di suggerire la soluzione.

+1

L'applicazione non è configurata correttamente. Controlla la configurazione di google api. –

+4

Sì, ma non sono in grado di scoprire che cosa è sbagliato. –

+0

Non uso firebase. Vedi la mia soluzione qui: https://stackoverflow.com/a/46828895/1160216 –

risposta

86

È necessario aggiungere il proprio codice SHA1 alla configurazione della console Firebase. Si può fare in questo modo:

console Firebase (https://console.firebase.google.com) -> progetto -> Configurazione -> scorrimento per

enter image description here

È possibile trovare la chiave SHA1 esecuzione "rapporto Signin" da Android Studio:

enter image description here

Poi, guarda la scheda "run" e fare clic sul pulsante:

enter image description here

Penso che sia il modo più semplice. Spero che questo aiuto.

+0

Spiegazione più chiara qui: https://stackoverflow.com/a/33479550/1617737 –

20

Probabilmente si è creato il file di configurazione utilizzando lo SHA1 del token "produzione", utilizzare il 'androiddebugkey' alias raccogli lo SHA1 corrispondente alla versione di debug della tua app e copia il file di configurazione nella directory 'app', dovresti avere entrambi i file di configurazione (uno per scopi di debug e un altro per l'ambiente di produzione).

Sulla base della procedura dettagliata pubblicata nel https://developers.google.com/identity/sign-in/android/start

Spero che questo può aiutare.

Saluti!

+2

Il mio errore è stato risolto quando sono passato alle credenziali del client Web invece del client Android per l'ID client OAuth 2.0.La formulazione mi confonde ancora mentre sto sviluppando un'app per Android che parla con un server web ... ma l'errore è scomparso almeno – Benitok

2

Stavo avendo lo stesso problema, come ho risolto è che avevo diverso applicationId nel mio file gradle rispetto al nome del pacchetto nel mio file manifest. E ho usato ApplicationId per creare il file JSON. Ho dovuto cambiare il nome del pacchetto in quello che era il mio applicationId e che lo ha risolto per me.

+1

Ho sempre pensato che il pacchetto nel Manifest fosse stato sovrascritto dal ApplicationId definito in gradle. Non è questo il caso? –

+0

Anche se questo non era né lo stesso identico problema né una soluzione diretta per me, almeno mi ha dato un suggerimento. Grazie! – Jenix

8

Ho avuto lo stesso problema e ho ottenuto che funziona effettuando questi passaggi:

1.Add DEBUG_KEYSTORE SHA1 di impronte digitali per il progetto Firebase. utilizzare il seguente comando (MAC/LINUX)

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

2. Ora generare un apk firmato del progetto. Il processo include la generazione di un keystore per la versione di rilascio dell'app.

Copy the path of the newly generated .jks file. 

3.Now generare RELEASE_KEYSTORE SHA1 impronte digitali utilizzando il seguente comando

keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME 

4.Copiare il nuovo SHA1 dall'uscita e aggiungerlo come un'altra impronta digitale SHA1 nella vostra console applicazione Firebase.

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

+0

che ha rilasciato sha1 si limita a ottenere questo errore, genera google_services.xml per google accedi, analytics e gcm, singolo file – Harsha

+0

assicurati che il tuo sha1 sia della versione 'release' dell'app e non della versione 'debug' –

+0

Ha Sì sto generando apk firmato e pubblicato in appstore anche, che le password jks e keystore sto usando solo – Harsha

0

Ho trovato questo errore nella mia app firebase. È stato corretto quando ho aggiunto la parte requestIdToken(activity.getString(R.string.default_web_client_id)) di seguito.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id)) 
     .build(); 

    apiClient = new GoogleApiClient.Builder(activity) 
     .addConnectionCallbacks(this) 
     .enableAutoManage(activity, this) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .build(); 

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient); 
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN); 
+0

cosa è default_web_client_id? da dove posso prenderlo? –

+0

@ AymanAl-Absi Hai configurato correttamente il tuo progetto per i servizi Google? vedere: https://developers.google.com/android/guides/google-services-plugin –

0

ho ottenuto questo errore quando ho aggiornato il mio file di configurazione JSON con un nuovo account Google.

Disinstallare l'applicazione manualmente e reinstallare l'app ha funzionato per me.

1

enter image description here

Il modo ho riparato era sollevando il tasto corrispondente al testo evidenziato. A causa dell'uso confuso della parola "server" nella pagina di documentazione di Firebase, stavo raccogliendo lo Server key. Quale era la ragione del problema.

È possibile trovare la chiave here.

0

L'errore è causato dal fatto che il checksum SHA-1 della chiave di debug o di rilascio non è incluso nella console firebase/google.

Prima generare chiave utilizzando seguente comando:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME 

quindi copiare il checksum SHA-1 e vai a:

Firebase Console > Your project > Settings of the app > Add Fingerprint

0

alternativa alle risposte fornite qui, è possibile utilizzare Android Studio Firebase Assistant per aggiungere automaticamente il tuo SHA-1 al tuo progetto con il clic di alcuni pulsanti.

In Android Studio, andare a Tools > Firebase > Select 'Authentication' e fare clic sul collegamento che dice 'Email and password authentication'.

Questo ti porterà un piccolo tutorial su come integrare l'Autenticazione per il tuo progetto, ma dal momento che probabilmente hai fatto tutto questo, basta fare clic su 'Connect to Firebase' e il gioco è fatto.

Problemi correlati