Ioni c Angular - предотвращение обратного вызова onAuthStateChanged () до тех пор, пока данные не будут вставлены после регистрации - PullRequest
0 голосов
/ 13 июля 2020

Я разрабатываю приложение 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 () после зарегистрируйтесь или войдите, не могли бы вы помочь реализовать решение для решения этой проблемы.

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