Firebase AdditionalUserInfo.isNewUser всегда возвращает false - PullRequest
0 голосов
/ 23 февраля 2019

Я использую ionic 4 с firebase / angularfire2 и аутентифицируюсь с помощью метода signinwithemeailandpassword(), поэтому мне нужно проверить первый раз, когда пользователь входит в систему после регистрации, поэтому я обнаружил, что firebase дает эту опцию с isNewUser

.при создании учетной записи с createUserWithEmailAndPassword() значение isNewUser составляет от equal до true, как следует или нормально!Но когда вход в систему с signinwithemeailandpassword() всегда возвращает false, независимо от того, в первый раз вход в систему или нет!

Это код метода входа в систему:

 async login(form: NgForm) {

// checking if login is valid
if (form.invalid)
  return this.statusMessage.message('Validation error!');

console.log(this.user);

try {

  const results = await this._afAuth.auth.signInWithEmailAndPassword(this.user.email, this.user.password).then(
    user => console.log(user.additionalUserInfo.isNewUser)

  );
  // console.log(results);

} catch (error) {
  switch (error.code) {
    case "auth/user-not-found":
      this.statusMessage.message("Your email address is wrong! please try again");
      break;

    case "auth/invalid-email":
      this.statusMessage.message("You have enterd invalid email address");
      break;

    case "auth/wrong-password":
      this.statusMessage.message('Password you have enterd is wrong');
      break;

    default:
      console.dir(error);
      this.statusMessage.message('Something wen wrong! please try again later');
      break;
  }

}

код регистрации:

async register(form: NgForm) {

    // checking for form validation
    if (form.invalid) return this.statusMessage.message('Validation error!');

    console.log(this.user);

    try {
      await this.afAuth.auth.createUserWithEmailAndPassword(this.user.email, this.user.password).then(
        user => console.log(user)

      );
    } catch (error) {
      this.statusMessage.message('Somthing went wrong!, please try again later.');
    }

  }

}

1 Ответ

0 голосов
/ 23 февраля 2019

Это ложно, потому что это правда только при первом входе в систему. Когда вы звоните createUserWithEmailAndPassword(), клиент регистрируется как этот пользователь.Будущие пользователи больше не будут считать пользователя новым.

Из документации :

При успешном создании учетной записи пользователя этот пользователь также войдет в ваше приложение.

Единственный раз, когда isNewUser будет правдой при обычном входе в систему, это если вы создадите учетную запись в консоли Firebase или используете Firebase Admin SDK.

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