#javascript #firebase #firebase-authentication
# #javascript #firebase #firebase-аутентификация
Вопрос:
Я делаю обновление электронной почты для пользователя, но сначала мне нужно знать, было ли электронное письмо ранее зарегистрировано в firebase authentication.
Таким образом, я обновил электронное письмо:
if(administrador.correo != vm.editedItem.correo){
console.log("ESTA ACTUALIZANDO CORREO");
console.log(vm.editedItem);
firebase.auth().signInWithEmailAndPassword(vm.editedItem.correo, vm.editedItem.contrasenia)
.then(function(userCredential) {
console.log("USER CREDENTIAL");
console.log(userCredential);
userCredential.user.updateEmail(vm.editedItem.correo)
.then(function() {
console.log("email update");
// Update successful.
}).catch(function(error) {
console.log("ERROR");
console.log(error);
// An error happened.
});
})
}
Но прежде чем я смогу обновить электронное письмо, я должен проверить, существует ли оно уже, существует ли электронное письмо, поскольку не разрешено обновлять почту, и если электронное письмо не существует, поэтому я обновляю электронное письмо.
Заранее большое вам спасибо.
Ответ №1:
Проверьте приведенный ниже код. Я думаю, вы пытаетесь изменить тот же адрес электронной почты, с помощью которого вы вошли в систему. Я внес некоторые незначительные изменения и комментарии.
if (administrador.correo != vm.editedItem.correo) {
console.log("ESTA ACTUALIZANDO CORREO");
console.log(vm.editedItem);
firebase.auth().signInWithEmailAndPassword(vm.currentItem.correo, vm.editedItem.contrasenia) // sign in with current email and password
.then(function (userCredential) {
console.log("USER CREDENTIAL");
console.log(userCredential);
userCredential.user.updateEmail(vm.editedItem.correo) // update new email
.then(function () {
console.log("email update");
// Update successful.
}).catch(function (error) {
console.log("ERROR");
console.log(error);
// An error happened.
// if updated user email already exists, it returns error code: auth/email-already-in-use
});
})
}
перейдите по этой ссылке для получения дополнительной обновленной почты
Ответ №2:
Если произошла ошибка, проверьте код ошибки auth / email-already-in-use.
Или используйте admin.auth().getUserByEmail()
. Создайте облачные функции и вызовите функцию из своего приложения.