在 JavaScript 中从 Firebase 数据库中检索数据

Retrieve data from Firebase database in JavaScript

我是 Firebase 的新手,我正在尝试弄清楚如何从我的 Firebase 数据库中检索数据。我能够根据用户的唯一 ID (uid) 成功添加到它,但现在从中获取数据似乎非常困难。我想从当前用户那里获取名字(以下代码中的 'user'),但是这个 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 WARNING: Exception was thrown by user callback. TypeError: Cannot set property 'first_name' of null.

如果有帮助,我的数据库结构如下:

{
  users: {
    "uid1": {
      first_name: "John"
    },
    "uid2": {
      first_name: "Sue"
    }
  }
}

使用 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;
});

以上回答正确。但是,我想如果您在查询中使用 child 会更具可读性。两者都应该有效。

firebase.database().ref('users').child(uid).on('value', function(snapshot) {
    var first_name = snapshot.val().first_name;
});