Как проверить, существует ли пользователь angularfire с идентификатором аутентификации - PullRequest
1 голос
/ 16 октября 2019

Я искал много решений, но большинство из них связано либо с проверкой, вошел ли пользователь auth в систему или нет, либо с использованием ссылки на документ для чтения и проверки электронной почты пользователя.

Чего я хочу добиться, так это запустить пользовательский ввод и проверить в адресе электронной почты идентификатора аутентификации, существует ли уже электронная почта. Из того, что я знаю, аутентификация на самом деле отправляет ошибку, такую ​​как auth / email-уже используется, это то, что у меня есть сейчас, но с каждым электронным письмом, которое я пытаюсь ввести, оно всегда возвращает меня с "пользователем, который уже используется"

 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 Ответ

1 голос
/ 16 октября 2019

fetchSignInMethodsForEmail(email) разрешается (звонки then()) со списком результатов. Он только отклоняет (вызывает catch), если есть ошибка, например, когда вы указываете неверный адрес электронной почты.

Так что вам придется проверить, передан ли массив методов входа вthen() пусто:

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

См. Также пример в документации Firebase .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...