Я обновляю электронную почту пользователя в Firebase, повторно аутентифицируя его , а затем обновляя пользователя :
const user = firebase.auth().currentUser;
const credential = firebase.auth.EmailAuthProvider.credential('my-email@test.com', 'my-password');
user.reauthenticateWithCredential(credential)
.then(user.updateEmail('my-new-email@test.com'))
.then(() => {
console.log('ok');
})
.catch((error) => {
if (error.code === 'auth/wrong-password') {
// ...
} else if (error.code === 'auth/invalid-email') {
// ...
} else if (error.code === 'auth/email-already-in-use') {
// ...
}
});
Это работает, но я не могу отловить ошибки, выданные частью user.updateEmail
. По некоторым причинам ошибки из части user.reauthenticateWithCredential
являются осторожными. Например, если я введу неправильный пароль, у меня будет ошибка с кодом auth/wrong-password
code в моем блоке catch((error) => {}
, но если я введу неверный адрес электронной почты, у меня будет только это сообщение в консоли:
Uncaught
L {code: "auth/invalid-email", message: "The email address is badly formatted."}