得到第一个没有钥匙的firebase孩子

Ben*_*ler 3 javascript json node.js firebase firebase-realtime-database

我试图获得firebase对象的第一个孩子.我的参考文件如下:

var sitesToVisitRef = firebase.database().ref('sitesToVisit')
Run Code Online (Sandbox Code Playgroud)

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

sitesToVisit:
  arstechnica-com:
    url: "https://arstechnica.com"
Run Code Online (Sandbox Code Playgroud)

但是,我不知道密钥(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;
    }
  });
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激.非常感谢!

Car*_*ist 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;
    }
  });
Run Code Online (Sandbox Code Playgroud)

你所拥有的snapshot是一个包含所有子节点的数组sitesToVisit,因为你limitToFirst(1)只使用了它,但它仍然是一个数组,因此你需要迭代该数组来获取每个子节点的键.