Sch*_*yer 6 javascript firebase react-native firebase-authentication expo
我在我的 React Native 应用程序中使用 firebase auth(通过 expo),身份验证通过观察者(包括持久用户)工作正常:
import firebase from "firebase";
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.props.setUser(user);
}
}).bind(this);
Run Code Online (Sandbox Code Playgroud)
我显示一个带有登录/注册的登陆屏幕,如果用户使用帐户登录,我将转发到主应用程序。应用程序启动后,加载持久用户时需要一段时间才能触发onAuthStateChanged方法,这导致我的应用程序短暂显示此登陆屏幕,然后导航离开。我希望有一个加载屏幕,直到正确确定身份验证状态。
但是,如果没有持久用户,则 onAuthStateChanged 永远不会触发,因此我没有要等待的特定事件。我可以使用超时计时器,但这似乎是一个糟糕的解决方案,因为必要的等待时间可能会根据硬件和连接速度而有很大差异。
如何正确解决这个问题,即我如何知道没有持久用户?
var isLoading = true;
firebase.auth().onAuthStateChanged(user => {
if (user) {
isLoading = false;
this.props.setUser(user);
}
}, error => {
isLoading = false;
}
}).bind(this);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |