Как использовать аутентификацию электронной почты Firebase с реагированием на родную и реагирующую навигацию - PullRequest
0 голосов
/ 10 апреля 2020

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

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

 function checkSignIn(){
  Firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
      return true
    } else {
      return false
    }
  })
}

Но я не уверен, что делать после

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Единственная проблема с предлагаемым подходом состоит в том, что когда вы перезагружаете страницу, вы по-прежнему не знаете состояние пользователя, поэтому довольно трудно решить, куда перенаправить или вы перенаправляете, а затем перенаправить обратно, когда состояние «разрешено» firebase.

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

0 голосов
/ 10 апреля 2020

Вы поняли это правильно, после функции, если пользователь не равен NULL, вы можете перенаправить их на домашний экран, а если NULL, перенаправить их на страницу входа:

 function checkSignIn(){
     Firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
           navigation.navigate("Home")
        } else {
           navigation.navigate("Login")
       }
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...