我已经寻找了许多解决方案,但大多数都与检查身份验证用户是否登录或使用文档引用通读并检查用户电子邮件有关。
我想要实现的是通过运行用户输入并检查身份验证标识符电子邮件地址中的电子邮件是否已存在。 据我所知,身份验证实际上发出了类似 auth/email-already-in-use 的错误 这就是我现在所拥有的,但是当我尝试输入的每封电子邮件时,它总是会返回“用户已在使用中”
checkAccountEmailExistInFirebase(email) {
firebase.auth().fetchSignInMethodsForEmail(email).then(user => {
console.log("User already in use");
}).catch(err => {
if (err.code === 'auth/user-not-found') {
this.regEmail = email;
}
})
最佳答案
fetchSignInMethodsForEmail(email)
使用结果列表进行解析(调用 then()
)。仅当出现错误时(例如当您指定无效的电子邮件地址时),它才会拒绝(调用 catch
)。
因此,您必须检查传递到 then()
的登录方法数组是否为空:
firebase.auth().fetchSignInMethodsForEmail(email)
.then(function(signInMethods) {
if (signInMethods.length > 0) {
...
}
})
关于angular - 我如何检查 Angularfire 用户是否存在并具有身份验证标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405210/