【问题标题】:Get first firebase child without key [duplicate]获得第一个没有密钥的firebase孩子[重复]
【发布时间】:2018-03-11 23:06:18
【问题描述】:

我正在尝试获取 firebase 对象的第一个孩子。我的 ref 看起来像这样:

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

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

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

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

我正在尝试使用此代码:

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”。

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

【问题讨论】:

  • 嗯...如果您通过它获取sitesToVisit,您不只是添加.child() 来获取arstechnica-com 吗?

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


【解决方案1】:

试试这个:

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),它只是第一个,但它仍然是一个数组,因此您需要遍历该数组以获得每个孩子的钥匙。

【讨论】:

  • 非常感谢!它有效!
猜你喜欢
  • 1970-01-01
  • 2016-07-08
  • 2017-09-16
  • 2018-11-08
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
相关资源
最近更新 更多