webentwicklung-frage-antwort-db.com.de

Wie kann ich E-Mails in Firebase-Auth ändern?

Ich versuche, die E-Mail-Adresse eines Benutzers zu ändern/zu aktualisieren:

firebase.auth().changeEmail({oldEmail, newEmail, password}, cb)

Aber ich bekomme ... changeEmail ist kein Fehler der Funktion. Ich habe die Referenz hier aus der alten Firebase-Dokumentation gefunden. 

Wie mache ich das in der 3.x-Version? Weil ich in der neuen Dokumentation keine Referenz finden kann.

15
CENT1PEDE

Sie suchen nach der updateEmail()-Methode für das firebase.User-Objekt: https://firebase.google.com/docs/reference/js/firebase.User#updateEmail

Da sich dies auf dem Benutzerobjekt befindet, muss Ihr Benutzer bereits angemeldet sein. Daher ist nur das Kennwort erforderlich.

Einfache Verwendung:

firebase.auth()
    .signInWithEmailAndPassword('[email protected]', 'correcthorsebatterystaple')
    .then(function(userCredential) {
        userCredential.user.updateEmail('[email protected]')
    })
24

Sie können dies direkt mit AngularFire2 tun, Sie müssen lediglich "currentUser" zu Ihrem Pfad hinzufügen.

this.af.auth.currentUser.updateEmail(email)
.then(() => {
  ...
});

Sie müssen den Login vor dem Aufruf erneut authentifizieren, da Firebase eine neue Authentifizierung erfordert, um bestimmte Kontofunktionen auszuführen, z. B. das Löschen des Kontos, das Ändern der E-Mail oder des Kennworts.

Für das Projekt, bei dem ich das gerade implementiert habe, habe ich das Login als Teil der Änderungskennwort-/E-Mail-Formulare hinzugefügt und dann kurz vor dem Aufruf von "updateEmail" "signInWithEmailAndPassword" genannt.

Um das Passwort zu aktualisieren, mache einfach folgendes:

this.af.auth.currentUser.updatePassword(password)
.then(() => {
  ...
});
0
oddpixel