Как узнать, запрашивает ли Firebase Auth пользователя? - PullRequest
0 голосов
/ 03 мая 2019

Фон

Я использую GoogleAuthProvider, по умолчанию LOCAL постоянство.

Когда я перехожу на страницу, я делаю:

firebase.initializeApp(firebaseConfig)
firebase.auth().currentUser // this is always null
firebase.auth().onAuthStateChanged(user => {
  console.log("authStateChanged", user)
})

Если пользователь вошел в систему, обратный вызов вызывается один раз, с пользователем.

Если пользователь не вошел в систему, обратный вызов также вызывается один раз, с null.

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

Вопрос

Это будет идиоматическое использование?Кажется ли, что он будет устойчив к обновлениям Firebase?Где найти это обсуждаемое в официальной документации?

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Глядя на похожие вопросы, такие как Шаблон для firebase onAuthStateChanged & Navigation Guards - приложение Quasar кажется, что это действительно так.

Итак, я пришел к следующемуразграничить начальное условие:

export const isReady = new Promise(resolve => {
  const unsubscribe = firebase.auth().onAuthStateChanged(() => {
    resolve()
    unsubscribe()
  })
})

Я экспортирую это Обещание из модуля, в который упаковываю firebase, чтобы я мог начать другую инициализацию, ожидая состояния авторизованной аутентификации.

0 голосов
/ 03 мая 2019

Обработка маршрутизации пользователя для его состояния аутентификации внутри обратного вызова onAuthStateChanged довольно идиоматична. Попробуйте и сообщите, если возникли проблемы.

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