如何将Firebase电子邮件身份验证与React Native和React导航一起使用

问题描述 投票:0回答:2

我正在尝试在我的React本机应用中实现Firebase身份验证,并试图在React导航的身份验证流程中使用受保护的路由。但是,即使我具有所有可用的功能(登录,注销等),我也不知道如何在应用程序中保存状态(使用redux)并使用该状态更改导航中的路线。如果有人可以帮忙,将不胜感激。

从我发现的文档中,我必须对人员状态使用侦听器:

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

但是我不确定以后该怎么办

reactjs react-native react-redux firebase-authentication react-navigation
2个回答
0
投票

您没错,在函数之后,如果用户不为空,则可以将其重定向到主屏幕,如果为空,则将其重定向到登录页面:

 function checkSignIn(){
     Firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
           navigation.navigate("Home")
        } else {
           navigation.navigate("Login")
       }
  })
}

0
投票

所建议的方法的唯一问题是,当您重新加载页面时,您仍然不知道用户的状态,因此很难确定要重定向到的位置,或者一旦状态为“已解决”。

[我所做的是,在应用程序的顶层(我已订阅onAuthStateChanged的地方)中,包含了一个状态,该状态指定是否从firebase检索身份验证状态。在此之前,我只渲染一个加载动画,一旦有了状态(是用户还是null),就可以决定重定向到的位置。

© www.soinside.com 2019 - 2024. All rights reserved.