获取第一个没有密钥

时间:2017-09-30 02:38:16

标签: javascript json node.js firebase firebase-realtime-database

我正在尝试获取firebase对象的第一个子节点。我的参考文件如下:

var sitesToVisitRef = firebase.database().ref('sitesToVisit')

我知道引用是有效的,因为我可以写信给它。我的数据结构如下所示:

sitesToVisit:
  arstechnica-com:
    url: "https://arstechnica.com"

但是,我不知道密钥(arstechnica-com),但我需要获取网址。

我正在尝试使用此代码:

var nextUrl;
sitesToVisitRef.limitToFirst(1).once('value', function(snapshot) {
    console.log("snapshot key" + snapshot.key);
    console.log("snapshot.val.url = " + snapshot.val().url);
    console.log("snapshot.val" + snapshot.val());
      nextUrl = snapshot.val().url;
    }
  });

但是snapshot.key记录为" sitesToVisit",而不是" arstechnica-com"。

非常感谢任何帮助。非常感谢你!

1 个答案:

答案 0 :(得分:5)

试试这个:

var nextUrl;
sitesToVisitRef.limitToFirst(1).once('value', function(snapshot) {
    for(var key in snapshot.val()){
        console.log("snapshot key" + key);
        console.log("snapshot.val.url = " + snapshot.val()[key].url);
        console.log("snapshot.val" + snapshot.val()[key]);
        nextUrl = snapshot.val()[key].url;
    }
  });

snapshot中的所有内容是sitesToVisit中包含所有子项的数组,因为您使用limitToFirst(1)它只是最好的一个,但它仍然是一个数组,因此您需要迭代该数组以获取每个孩子的密钥。