我正在使用firebase.auth()。onAuthStateChanged检查用户是否已登录。如果是,则转到用户配置文件的路由,然后再登录。由于这是异步操作,因此我尝试使用async使其工作并使用react-native-router-flux等待,其中onEnter,firebase检查用户是否已登录。返回结果后,react-native-router流量正确路由用户。
这是我的代码,该代码自动呈现“失败”条件,而不是等待不为null的loginIn对象(它将返回为true或false)。
class RouterComponent extends Component {
currentAuthStatus = async () => {
this.props.checkLoginStatus();
await this.props.loggedIn !== null;
};
render() {
return (
<Router>
<Scene key="root" hideNavBar>
<Scene key="auth">
<Scene key="loadingPage" component={LoadingPage} hideNavBar on={() => this.currentAuthStatus()} success="userProfile" failure="login" />
<Scene key="login" component={LoginForm} title="Login" />
</Scene>
<Scene key="main">
<Scene key="userProfile" component={UserProfile} title="Profile" />
</Scene>
</Scene>
</Router>
);
} }