我确实有一个react
和firebase
项目。因此,我能够通过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'))
}
}
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程序包登录,那么无论是在同一页面还是在其他任何页面上都可以调用,这是没有问题的。