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')
  }
});