Kann nicht currentUser auf laden
Wenn Sie versuchen, zu überprüfen, ob ein Benutzer angemeldet ist über firebase.auth().currentUser
wie diese:
if (firebase.auth().currentUser === null) {
console.log('User not signed in');
}
Immer wenn ich die Seite aktualisieren, oder navigieren Sie, um die obigen null zurück (auch wenn ich nur angemeldet).
Komisch ist, dass wenn ich mich einloggen
console.log(firebase.auth().currentUser) //This returns null
console.log(firebase.auth()) //Here I can inspect the object and currentUser exists...!
Ich weiß wirklich nicht, was hier Los ist. Ich bin mit der Reaktion und wiedermal, aber es sollte nicht wirklich wichtig, würde ich sagen.
Gibt es eine kleine Verzögerung, in denen der FB initialisiert und Sie können nicht auf das currentUser? Wenn ja, wie kann ich sehen, es in die log-Ausgabe von firebase.auth()
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine Häufig gestellte Frage.
https://firebase.google.com/docs/auth/web/manage-users
Sie benötigen einen Beobachter, um onAuthStateChanged zu erkennen, der ursprüngliche Zustand und alle nachfolgenden Zustandsänderungen,
Der beste Weg, um haben stets Zugriff auf currentUser ist die Verwendung vuex und vuex-persistedstate
Das einzige Problem oben ist, dass, wenn der Benutzer drückt aktualisieren auf dem browser der vuex Zustand, werden weggeworfen, und Sie haben zu warten, bis onAuthStateChange, um das Feuer wieder, also, warum bekommen Sie null, wenn Sie versuchen, Zugriff auf currentUser.
Das Geheimnis der obige code funktioniert, ist die ganze Zeit zu verwenden, vuex-permanenten Zustand.
In Ihrem store.js Datei
Können Sie nun Ihre Routen in deinem router, wie im code-Beispiel unten.
prüfen Sie zunächst, ob der Benutzer existiert, dann bekommen Sie id durch