检查用户是否已登录以在响应中使用Firebase

问题描述 投票:0回答:1

我确实有一个reactfirebase项目。因此,我能够通过firebase身份验证成功登录用户。我要做的是在所有页面中设置用户详细信息。我以为,我可以像laravel的Auth::user()一样在任何地方访问用户变量。但是我尝试了很多方法来实现这一目标。但是我无法在另一页上获取用户详细信息。有没有办法在另一页上获取用户详细信息?

[我的signin.js页面。

  handleSubmit = (e) => {
    e.preventDefault()
    firebase.auth().signInWithEmailAndPassword(this.state.email, this.state.password).then((user) => {
      alert("login success")
      console.log(user.user)
      this.setState({uid:user.user.uid})
      localStorage.setItem('uid',JSON.stringify(user.user))
      window.location.assign('/')
      }).catch(function(error) {
            console.log(error.code)
            alert(error.message)
        })
      }

我想在其中访问用户变量的dashboard.js页面。

  componentDidMount() {
    if(localStorage.getItem('uid')){
      //alert("welcome"+localStorage.getItem('uid'));
      this.setState({user : JSON.parse(localStorage.getItem('uid'))})
      console.log("this : "+localStorage.getItem('uid'))
    }
  }
reactjs laravel firebase
1个回答
0
投票
var user = firebase.auth().currentUser;
var name, email, photoUrl, uid, emailVerified;

if (user != null) {
  name = user.displayName;
  email = user.email;
  photoUrl = user.photoURL;
  emailVerified = user.emailVerified;
  uid = user.uid;  // The user's ID, unique to the Firebase project. Do NOT use
                   // this value to authenticate with your backend server, if
                   // you have one. Use User.getToken() instead.
}

您可以在currentUser回调中使用firebase.auth()方法来获取用户详细信息。如果您使用前端Firebase程序包登录,那么无论是在同一页面还是在其他任何页面上都可以调用,这是没有问题的。

© www.soinside.com 2019 - 2024. All rights reserved.