Reactjs 使用Email和Password响应本机firebase登录如何验证登录
这是导航工作的当前代码,但问题如下: 当我输入无效凭证时,导航“第二屏幕”仍将激活 我只想在登录成功时激活它Reactjs 使用Email和Password响应本机firebase登录如何验证登录,reactjs,firebase,firebase-authentication,Reactjs,Firebase,Firebase Authentication,这是导航工作的当前代码,但问题如下: 当我输入无效凭证时,导航“第二屏幕”仍将激活 我只想在登录成功时激活它 如何实现这一点?您当前的代码只处理登录中的问题。它还不能处理登录成功或用户重新访问应用程序/页面时自动登录的情况 您需要监视用户的身份验证状态,如所示: 如果我把它放在“渲染”下,它仍将转到下一页而不登录。我必须将此代码放在何处?此代码注册一个侦听器,当用户身份验证状态更改时将触发该侦听器。只有当用户通过身份验证时,它才会导航到第二个屏幕。如果我的答案有用,请单击它左侧的upvote按钮
如何实现这一点?您当前的代码只处理登录中的问题。它还不能处理登录成功或用户重新访问应用程序/页面时自动登录的情况 您需要监视用户的身份验证状态,如所示:
如果我把它放在“渲染”下,它仍将转到下一页而不登录。我必须将此代码放在何处?此代码注册一个侦听器,当用户身份验证状态更改时将触发该侦听器。只有当用户通过身份验证时,它才会导航到第二个屏幕。如果我的答案有用,请单击它左侧的upvote按钮。如果它回答了您的问题,请单击复选标记接受它。这样别人就知道你得到了足够的帮助。
login(){
const { navigate } = this.props.navigation
firebase.auth().signInWithEmailAndPassword(this.state.email, this.state.password).catch(function(error) {
console.log(error.code)
console.log(error.message)
Alert.alert('Email', 'Error wrong credentials', [{text: 'understood'}]);
})
navigate('SecondScreen')
}
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
navigate('SecondScreen')
}
});