2016-06-20 11 views
5

Sto tentando di registrare i miei utenti Google nella mia app utilizzando Firebase, ma ogni volta che utilizzo il metodo seguente, viene visualizzato questo errore: An internal error has occured. [ OAuth2 client id in server configuration is not found. ]. Ho già ottenuto la chiave ID del mio cliente dalla console degli sviluppatori e sto utilizzando l'ID del client web, non quello di Android nel mio token di richiesta. Qualche idea?Firebase continua a lanciare ID client OAuth2 nella configurazione del server non trovata

Ecco il mio codice:

private void firebaseAuthWithGoogle(final GoogleSignInAccount acct) { 

     final AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null); 
     mAuth.signInWithCredential(credential) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 


         if (!task.isSuccessful()) { 

          Toast.makeText(Login.this, "Oops, something went wrong with your login. Please try again.", 
            Toast.LENGTH_SHORT).show(); 

         } 

         else{ 


          Intent i = new Intent(Login.this, FindOpp.class); 
          startActivity(i); 
         } 

        } 
       }); 
    } 
+0

E sì, è perché non è stato trovato. Forse dovresti raddoppiare il doppio controllo. La console di Firebase e la console dell'API di Google possono essere una cosa confusa per chiudere la testa di recente. Ricorda, le API API sono diverse dagli ID client OAuth2 – Rexford

+0

@Rexford Grazie per il tuo aiuto; la mia prossima domanda, e quella che probabilmente avrei dovuto chiedere prima, è esattamente ciò che non si trova? Ho usato il mio URL Firebase (fornito in google-services.json; sembra questo firebaseio.com) per creare il client web nella console API, ma cosa esattamente non viene trovato? Ho usato l'ID cliente che mi è stato dato dalla console API come ID nella mia richiestaToken, quindi non è stato trovato bieng? –

risposta

5

di Firebase configurazione di default utilizza il services.json emesso dalla console Firebase (non la console cloud). L'impostazione Oauth viene configurata automaticamente quando si crea il progetto sulla console Firebase in modo che NON si debbano utilizzare altri tasti creati manualmente.

Avere il services.json nella directory principale del modulo dell'app dovrebbe essere tutto ciò che è necessario per chiamare il FirebaseAuth.signInWithCredential, non dovrebbero essere necessarie le impostazioni manuali di Oauth.

+0

'L'impostazione di Oauth viene configurata automaticamente quando si crea il progetto sulla console Firebase', tuttavia sono trascorsi circa 45 minuti prima che il mio progetto della console di FIrebase iniziasse a essere visualizzato sulla console degli sviluppatori di Google con le chiavi OAuth per il tipo di applicazione Web. È normale? – nightlytrails

2

Ecco una discussione che ho trovato su Google Gruppi che era davvero disponibile: https://groups.google.com/forum/?hl=ca#!topic/firebase-talk/d9MHQjAxFBY

ho dovuto whitelist l'ID del client Web segreto cliente & Web all'indirizzo https://console.developers.google.com/apis/credentials

Assicurarsi inoltre che si sta utilizzando requestIdToken(getString(R.string.default_web_client_id)) nel codice invece di requestIdToken(<Actual Client ID>)

Spero che questo aiuti!

+0

Eccellente, grazie per il collegamento a Google Gruppi. –

1

La risposta di jirungaray è corretta, non è necessario generare le proprie chiavi nella console dell'API. Tuttavia, se sei come me e hai cancellato le tue chiavi mentre fai casino, puoi risolvere questa situazione.

In Firebase andare a Authentication ->Sign in Method ->Google ->Web SDK Configuration e qui è possibile modificare la chiave e segreto ai valori desiderati.

+0

Questo ha risolto il mio problema in iOS. Grazie. – birdcage

Problemi correlati