Firebase问题阅读清单

时间:2014-05-16 06:10:05

标签: firebase

我在此跟随https://www.firebase.com/tutorial/#tutorial/basic/5的教程说,对于列表,您可以推送像这样的新项目...

var myDataRef = new Firebase("https://.../items"
myDataRef.push({name: "Sally"});

文档在这里说https://www.firebase.com/docs/managing-lists.html要读取列表数据,只需执行类似这样的操作

myDataRef.on('value', function(snapshot) {
  console.log(snapshot.val());
});

snapshot.val()使用包含我的对象的随机密钥返回一个对象。我是否真的需要做像

这样的事情
arr =[] Object.keys(snapshot.val()).forEach(function(key) { arr.push(snapshot.val()[key])})

获得正常的对象数组?或者我在这里错过了什么..非常感谢。

2 个答案:

答案 0 :(得分:1)

我不完全确定您要问的是什么,但看看这是否有助于检索您正在使用snapshot.val()查找的数据。使用child_added,这将有助于端点(" firebase_url / items")并显示每个直接对象。

myDataRef.on('child_added', function(snapshot) {
console.log(snapshot.val());
});

点击此链接可获取有关从firebase http://www.firebase.com/docs/reading-data.html

阅读的更多信息

答案 1 :(得分:0)

未订购JavaScript对象。因此,密钥的显示顺序可能与您的数据不同(JSON可以将它们放在任何需要的位置)。要按顺序迭代它们,请尝试forEach

myDataRef.on('value', function(snapshot) {
  snapshot.forEach(function(ss) {
     console.log(ss.name());
  });
});

对于更多实时结果,Ron使用child_added的示例是理想的。