我正在为用户更新电子邮件,但首先我需要知道该电子邮件先前是否已在Firebase身份验证中注册。
通过这种方式,我更新了电子邮件:
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.
});
})
}
但是在更新电子邮件之前,我必须验证它是否已经存在,是否存在,因为不允许更新邮件以及如果该电子邮件不存在,因此我要更新电子邮件。
非常感谢。
答案 0 :(得分: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
});
})
}
关注此链接以获取更多updateEmail
答案 1 :(得分:0)
如果发生错误,请检查错误代码auth / email-already-in-正在使用中。
或者,使用map
。构建到云函数并从您的应用程序中调用函数。