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.
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]')
})
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(() => {
...
});