Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase故障读取列表_Firebase - Fatal编程技术网

Firebase故障读取列表

Firebase故障读取列表,firebase,Firebase,我下面的教程说,对于列表,你可以像这样推送一个新项目 var myDataRef = new Firebase("https://.../items" myDataRef.push({name: "Sally"}); 这里的文档说,要读取列表数据,只需执行如下操作 myDataRef.on('value', function(snapshot) { console.log(snapshot.val()); }); val()返回具有包含我的对象的随机键的对象。我真的要做这样的事情吗 ar

我下面的教程说,对于列表,你可以像这样推送一个新项目

var myDataRef = new Firebase("https://.../items"
myDataRef.push({name: "Sally"});
这里的文档说,要读取列表数据,只需执行如下操作

myDataRef.on('value', function(snapshot) {
  console.log(snapshot.val());
});
val()返回具有包含我的对象的随机键的对象。我真的要做这样的事情吗

arr =[] Object.keys(snapshot.val()).forEach(function(key) { arr.push(snapshot.val()[key])})

要获得外观正常的对象数组?还是我在这里遗漏了什么。。非常感谢。

我不完全确定您在问什么,但请查看这是否有助于检索使用snapshot.val()查找的数据。使用添加的child,这将进入端点(“firebase\u url/items”)并显示每个即时对象

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

查看此链接以获取有关从firebase读取的更多信息,

JavaScript对象未排序。因此,这些键的显示顺序可能与您的数据不同(JSON可以将它们放在任何它喜欢的地方)。要按顺序迭代,请尝试:


为了获得更实时的结果,Ron使用添加的child_的示例非常理想。

请务必在此处选中
prevChild
,它与
snapshot
一起传递到回调中;此处不保证值的顺序(尽管只要在读取过程中不进行并发编辑,该顺序是正确的)。
myDataRef.on('value', function(snapshot) {
  snapshot.forEach(function(ss) {
     console.log(ss.name());
  });
});