2017-08-18 2 views
1

Im documentation von Firebase heißt esRetrieve Google authentifizierte Benutzerdaten in Firebase

Sie einen neuen Benutzer durch den Aufruf der createUserWithEmailAndPassword Methode oder indem Sie sich in einem Benutzer für die in Ihrem Firebase-Projekt erstellen Verwenden Sie zum ersten Mal einen Anbieter für Partnerschaftsidentität, z. B. Google Sign-In oder Facebook Login.

Ich benutze react-native-google-signin library, um sich anzumelden und nach einem Tag des Denkens damit es endlich funktioniert. Ich kann die eingeloggten Benutzerdaten nach einer erfolgreichen Anmeldung sehen.

Aber in der Firebase-Konsole, unter Authentifizierung, sehe ich keinen neuen Benutzer hinzugefügt.

Natürlich denke ich einen Weg, es zu handhaben wäre etwas, die

GoogleSignin.signIn().then(user => { 
    // if the user doesn't already exist   
    firebase.auth() 
     .createUserWithEmailAndPassword(user.email, randomPassowrd); 
}) 

Aber das fühlt sich an wie dieses Problem zu umgehen und die Doc sagt wie

sieht, dass Sie mit Google, indem Sie sich in einen neuen Benutzer in Feuerbasis schaffen ... warum passiert das nicht automatisch?

Dies ist meine aktuelle Implementierung, ich glaube, dies ist die einfachste Art und Weise ist, wie ich sayd Login erfolgreich ist und Daten in fließen.

GoogleSignin 
    .configure({ 
     iosClientId: IOS_CLIENT_ID 
    }) 
    .then(() => { 
     GoogleSignin 
     .signIn() 
     .then((user) => { 
      console.log('user ->', user); 
      dispatch(LoginSuccessAction(user)) 
     }) 
     .catch((err) => { 
      dispatch(LoginFailAction()) 
     }) 
     .done(); 
    }) 
    .done(); 
+0

Wenn Sie einen Benutzer in Firebase-Authentifizierung mit Google (oder einem anderen Anbieter) unterzeichnen, werden sie in der [Firebase Authentication Konsole] (https zeigen: // Konsole .firebase.google.com/project/_/Authentifizierung/Benutzer). Wenn dies für Ihre App nicht geschieht, teilen Sie den [Mindestcode, der das Problem reproduziert] (http://stackoverflow.com/help/mcve). –

+0

Ich habe den Codebeispiel – Bolza

+0

hinzugefügt Der Code, den Sie freigegeben haben, signiert den Benutzer nicht in Firebase, daher werden sie tatsächlich nicht in der Firebase-Konsole angezeigt (noch haben sie authentifizierten Zugriff auf Firebase-Dienste). Sie verpassen einen Aufruf von 'firebase.auth(). SignInWithCredential (credential)' wie hier gezeigt: https://firebase.google.com/docs/auth/web/google-signin#advanced-handle-the-sign -in-flow-manuell –

Antwort

0

Wenn Sie einen Benutzer in Firebase Authentifizierung mit Google unterzeichnen (oder jeden anderen Anbieter), erscheinen sie in der Firebase Authentication console.

Der Code, den Sie freigegeben haben, signiert den Benutzer nicht in Firebase, daher werden sie tatsächlich nicht in der Firebase-Konsole angezeigt (noch haben sie authentifizierten Zugriff auf Firebase-Dienste). Sie verpassen einen Anruf zu firebase.auth().signInWithCredential(credential) wie hier gezeigt: https://firebase.google.com/docs/auth/web/google-signin#advanced-handle-the-sign-in-flow-manually

Verwandte Themen