相关疑难解决方法(0)

使用 expo go 保持 firebase 登录的最佳方法

我正在尝试使用Expo Go 在 React Native 中制作一个应用程序。已经成功让谷歌登录工作,一切都很好。不幸的是,用户的登录在应用程序重新启动之间不会保留。起初,我认为这是一个异步存储问题,但我可以在重新启动之间将项目保存在存储中。

我需要手动保存哪些数据才能在应用程序启动时让用户重新登录?

我更喜欢手动保存数据,因为所有应该有效的方法都不适合我。我尝试过的方法:

  • 打电话setPersistence(getAuth(), browserLocalPersistence)给我一个错误,请参阅这篇文章以了解我收到的确切错误。
  • 使用onAuthStateChanged对我来说也不起作用,事实上,这是我知道何时登录的主要方式。用户对象始终为空,并且永远不会从空更改,直到用户再次登录(每次应用程序启动时都会发生这种情况) 。
    useEffect(() => getAuth().onAuthStateChanged(value => {
      if (value) {
        console.log("User is signed in");
      }  else {
        console.log("User is signed out");
        // navigation.navigate("login")
      }
    }), [])
    
    Run Code Online (Sandbox Code Playgroud)

(此代码将始终在应用程序重新启动时打印用户已注销。)
此时,我认为如果我可以自己保存用户的凭据,然后在应用程序启动时以静默方式登录它们,那就会更容易。我很难找到执行此操作的代码。

javascript firebase react-native firebase-authentication expo

11
推荐指数
3
解决办法
6626
查看次数