我在此跟随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])})
获得正常的对象数组?或者我在这里错过了什么..非常感谢。
答案 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的示例是理想的。