我是Firebase的新手,我正在尝试弄清楚如何从Firebase数据库中检索数据。我能够根据用户的唯一ID(uid
)成功添加,但现在从中获取数据似乎非常困难。我想从当前用户中获取名字('用户'在以下代码中),但此JavaScript似乎无法正常工作:
var uid = user.uid
firebase.database().ref('users/' + uid).on('value', function(snapshot) {
this.first_name = snapshot.val().first_name;
});
一旦我拨打this.first_name
,它就会给我以下错误:
FIREBASE警告:用户回调引发了异常。 TypeError:无法设置属性' first_name' null。
如果有帮助,我的数据库结构如下:
{
users: {
"uid1": {
first_name: "John"
},
"uid2": {
first_name: "Sue"
}
}
}
答案 0 :(得分:1)
使用var first_name
代替this.first_name
。它应该工作。
var uid = user.uid
firebase.database().ref('users/' + uid).on('value', function(snapshot) {
var first_name = snapshot.val().first_name;
});
答案 1 :(得分:1)
上面的答案是正确的。但是,如果你在查询中使用child
,我想它更具可读性。两者都应该有用。
firebase.database().ref('users').child(uid).on('value', function(snapshot) {
var first_name = snapshot.val().first_name;
});