使用JavaScript

时间:2016-06-09 05:34:51

标签: javascript firebase firebase-realtime-database

我是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"
    }
  }
}

2 个答案:

答案 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;
});