如何检查带有身份验证标识符的angularfire用户

时间:2019-10-16 03:11:04

标签: angular firebase firebase-authentication

我寻找了许多解决方案,但大多数解决方案与检查auth用户是否已登录或通过使用文档参考来通读并检查用户电子邮件有关。

我想要实现的是通过运行用户输入并在已验证的身份验证电子邮件中检查电子邮件是否已经存在。 据我所知,身份验证实际上发出了错误信息,例如身份验证/已在使用电子邮件 这就是我现在所拥有的,但是在尝试输入的每封电子邮件中,它将始终以“用户已在使用中”的形式返回我。

 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;
      }
    })

1 个答案:

答案 0 :(得分:1)

fetchSignInMethodsForEmail(email)解析(调用then())并显示结果列表。仅在出现错误(例如您指定无效的电子邮件地址)时,它才会拒绝(呼叫catch

因此,您必须检查传递到then()的登录方法数组是否为空:

firebase.auth().fetchSignInMethodsForEmail(email)
  .then(function(signInMethods) {
    if (signInMethods.length > 0) {
      ...
    }
  })

另请参阅example in the Firebase documentation