Я использую 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.');
}
}
}