【发布时间】:2019-09-29 22:22:42
【问题描述】:
我在我的 React Native 应用程序(通过 expo)中使用 firebase 身份验证,身份验证通过观察者工作正常,包括持久用户:
import firebase from "firebase";
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.props.setUser(user);
}
}).bind(this);
我会显示一个带有登录/注册的登录屏幕,如果用户使用帐户登录,我会转发到主应用程序。应用程序启动后,在加载持久用户时,onAuthStateChanged 方法需要一段时间才能触发,这导致我的应用程序在短时间内显示此登录屏幕,然后导航离开。 在正确确定身份验证状态之前,我希望有一个加载屏幕。
但是如果没有持久用户,onAuthStateChanged 永远不会触发,所以我没有要等待的特定事件。我可以使用超时计时器,但这似乎是一个糟糕的解决方案,因为必要的等待时间可能会因硬件和连接速度而有很大差异。
如何正确解决这个问题,即我如何知道没有持久用户?
【问题讨论】:
标签: javascript firebase react-native firebase-authentication expo