【发布时间】:2016-12-26 16:36:27
【问题描述】:
我目前正在使用 firebase 使用某个用户的名字和姓氏来填充网站,但由于某种原因它无法正常工作。
getUserName(){
firebaseAuth().onAuthStateChanged((user) => {
if(user){
// var name = ref.ref('users/' + user.uid).once('value').then((snapshot) => console.log(snapshot.val().displayName));
var name = user.displayName;
console.log("name in function: " + name); //prints full name
return name;
}
});
}
render() {
var name = this.getUserName();
console.log("name: " + name); //prints undefined
return (
<div className="col-sm-6 col-sm-offset-3">
<h1> Welcome {this.getUserName()} asdfasd </h1>
</div>
);
}
这是我的两个功能。出于某种原因,当我在两种情况下都打印出 name 变量时,我得到了两个不同的变量。在 getUserName() 中,它打印出用户的全名,然后我返回该值。当 DOM 呈现时,“name”变量未定义,即使 getUserName() 函数打印出全名。任何帮助将不胜感激!
【问题讨论】:
-
改为
console.log("name: ", this.getUserName())时会打印什么?
标签: javascript reactjs ecmascript-6 firebase-realtime-database