web-dev-qa-db-fra.com

Comment changer les emails en firebase auth?

J'essaie de changer/mettre à jour l'adresse email d'un utilisateur en utilisant:

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

Mais j'obtiens ... changeEmail n'est pas une erreur de fonction. J'ai trouvé la référence ici de l'ancien docu firebase. 

Alors, comment je le fais dans la version 3.x? Parce que je ne trouve pas de référence dans la nouvelle documentation.

15
CENT1PEDE

Vous recherchez la méthode updateEmail() sur l'objet firebase.User: https://firebase.google.com/docs/reference/js/firebase.User#updateEmail

Etant donné que cela se trouve sur l'objet utilisateur, votre utilisateur devra déjà être connecté. Il ne nécessite donc que le mot de passe.

Utilisation simple:

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

Vous pouvez le faire directement avec AngularFire2, il vous suffit d’ajouter «currentUser» à votre chemin.

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

Vous devrez également réauthentifier le nom de connexion avant de l’appeler, car Firebase nécessite une nouvelle authentification pour exécuter certaines fonctions du compte, telles que la suppression du compte, la modification de l’adresse électronique ou le mot de passe.

Pour le projet sur lequel je viens d'implémenter, j'ai simplement inclus le login dans les formulaires de modification du mot de passe/email, puis appelé "signInWithEmailAndPassword" juste avant l'appel "updateEmail".

Pour mettre à jour le mot de passe, procédez comme suit:

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