Я разрабатываю приложение Ioni c, используя angular и firebase, у меня очень c потребность в логине и регистрации в приложении, но я не могу добиться этого эффективно.
У меня есть onAuthStateChanged () в app.component.ts , где я сохраняю uid и displayName в локальном хранилище, если пользователь вошел в систему, и удаляю данные при выходе из системы.
this.afAuth.auth.onAuthStateChanged(user => {
if(user){
console.log("onAuthStateChanged:Signed In:"+user)
this.storage.set("username", user.displayName); //displayName needs to inserted in db after user registers
} else{
console.log("onAuthStateChanged:Signed Out")
this.storage.remove("username")
}
})
У меня есть страница регистрации, откуда я звоню createUserWithEmailAndPassword (email, pass) , чтобы зарегистрировать нового пользователя. После успешной аутентификации пользователя я хочу вставить данные пользователя вместе с UID в базу данных реального времени, тогда только я хочу, чтобы запускался onAuthStateChanged () .
Моя проблема: onAuthStateChanged () срабатывает мгновенно при изменении состояния. Итак, я не могу быть на 100% уверен, что данные пользователя вставляются при вызове onAuthStateChanged ().
Я не уверен, есть ли способ узнать, запускается ли onAuthStateChanged () после зарегистрируйтесь или войдите, не могли бы вы помочь реализовать решение для решения этой проблемы.