Die createUserWithEmailAndPassword()
gibt eine so genannte Versprechen. Ein Versprechen kann erfolgreich sein und fehlschlagen und hat separate Klauseln für jedes Versprechen. Sie können Erfolg mit der then()
Klausel Griff:
firebase.auth().createUserWithEmailAndPassword(email, password).then(success){
// Handle Success here
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
};
Der Grund, warum Sie nicht then()
in der Dokumentation sehen, ist, weil die oben einige wichtige Strömungen vermißt für, wenn sich der Benutzer in
Zum Beispiel. Was passiert, wenn Sie die Seite/App neu laden? Firebase speichert die Sitzung des Benutzers automatisch im lokalen Speicher, aber der Code ist sich dessen nicht bewusst. Ihre App wird sich wahrscheinlich erneut anmelden müssen, was zu einer nicht so guten Erfahrung führt.
Mit Firebase-Authentifizierung ist es besser, monitor the authentication state:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
Dieser Rückruf nicht automatisch aufgerufen wird, wenn der Benutzer in oder out unterzeichnet ist. Unabhängig davon, ob Sie das Konto erstellt haben, haben sie die Seite neu geladen oder ihr kurzlebiges Token wurde aktualisiert - der Code im ersten Block wird ausgeführt. Ähnlich: ob die Sitzung des Benutzers abgelaufen ist, sie sich abgemeldet hat oder aus irgendeinem anderen Grund abgemeldet wird - der Code im zweiten Block wird ausgeführt.
Auf diese Weise haben Sie nur einen einzigen Platz für die Bearbeitung des Falls, in dem der Benutzer an- oder abgemeldet wird.
Aber seit createUserWithEmailAndPassword()
kann in allen Arten von spektakulären Möglichkeiten fehlschlagen, werden Sie immer noch diese Fehler dort explizit behandeln wollen.
So ist der komplette idiomatische Code für die Handhabung der createUserWithEmailAndPassword()
und Monitor-Sign-in-Zustand ist:
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
};
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
} else {
// No user is signed in.
}
});
Dank Ihrer Hilfe –
Hallo ich versuche dann hinzufügen(), aber es scheint nicht funktioniert –