2016-07-30 8 views
2

authentifiziert ist, wenn ich tun:, wenn ein Benutzer auf Firebase initializeApp

firebase.initializeApp(config); 
firebase.auth().currentUser; 

das erste Mal nach einer Aktualisierung für einige Millisekunden current null ist. Aber später wird der currentUser Wert gefüllt. Natürlich habe ich mich vorher ohne Abmeldung authentifiziert.

Wie kann ichApp initialisieren und warten bis ich wirklich weiß, dass der Benutzer eingeloggt ist oder nicht? Ich meine firebase.initializeApp und firebase.auth() sind keine Versprechen. Gibt es ein Versprechen zu wissen, dass der Benutzer angemeldet ist oder nicht? Ich konnte keine finden.

Antwort

1

ich jetzt oft ein onAuthStateChanged() Handler ermitteln verwenden, wenn der Benutzer in.

firebase.initializeApp(config); 
    firebase.auth().onAuthStateChanged((user) => { 
     if (user == null) { 
      // TODO: start sign-in flow 
     } 
     else { 
      // TODO: start actual work 
     } 
    } 
    }); 
+0

unterzeichnet Aber die onAuthStateChanged wird, selbst wenn der Benutzer aufgerufen wurde nie eingeloggt hat? – elranu

+0

Ja. Es wird sofort mit dem ursprünglichen/aktuell bekannten Zustand und dann immer dann aufgerufen, wenn sich der Zustand ändert. Versuch es! –

+0

So wird es gemacht. '.onAuthStateChanged'" Wenn Sie einen Observer verwenden, stellen Sie sicher, dass sich das Auth-Objekt nicht in einem Zwischenzustand befindet (z. B. bei der Initialisierung), wenn Sie den aktuellen Benutzer erhalten. " [Benutzer in Firebase verwalten] (https://firebase.google.com/docs/auth/web/manage-users). BTW - Ich habe eine [Web Auth Boilerplate auf Github] (https://github.com/rhroyston/firebase-auth). Demo [hier] (https://rack.pub/firebase-auth). –

Verwandte Themen