【发布时间】:2018-09-27 03:10:45
【问题描述】:
我的firebase方法onAuthStateChanged()在我根据console.log使用firebase-authentication登录和注销时触发了几次。它不应该只在登录和注销时触发一次吗?结果是在退出时,多次触发到上一页的导航。代码如下:
componentDidMount() {
fbAuth.onAuthStateChanged(user => this.loginFunc(user));
}
loginFunc(user) {
if (user) {
console.log('LOGGED IN');
}else {
console.log('LOGGED OUT');
this.props.navigation.navigate('FbLogin');
}
console.log('onAUTH LOGGED IN: ', user);
}
这就是控制台的样子。如您所见,只需单击一次注销即可触发登录和注销。在登录时,它会触发两次......
LOGGED OUT
FbLogin.js:46 onAUTH: null
LoggedIn.js:27 LOGGED OUT
LoggedIn.js:30 onAUTH LOGGED IN: null
FbLogin.js:44 LOGGED OUT
FbLogin.js:46 onAUTH: null
我的注销按钮如下所示:
<TouchableHighlight //LOGOUT
style={{
...
}}
onPress={() => {
fbAuth.signOut();
this.setState({ loginState: "You are logged out" });
}}
>
<Text>Logout</Text>
</TouchableHighlight>
【问题讨论】:
-
在您的控制台消息中,似乎有两个类在编写消息:
FbLogin.js和LoggedIn.js。还是我读错了?
标签: javascript firebase react-native firebase-authentication react-navigation