Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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/4/json/13.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
Javascript Firebase Web检索更具体的数据并对其进行排序_Javascript_Json_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript Firebase Web检索更具体的数据并对其进行排序

Javascript Firebase Web检索更具体的数据并对其进行排序,javascript,json,firebase,firebase-realtime-database,Javascript,Json,Firebase,Firebase Realtime Database,我在Firebase中有以下数据库结构: 每个对象都包含与章节及其排序顺序相对应的category和sectionIndex 我试图抓取这些数据,以便在我的菜单中显示它 我可以使用以下代码访问数据库: firebase.database().ref().on(“value”,snapshot=>{console.log(snapshot.val());},error=>{console.log(“error:+error.code);}) 控制台中有以下结果: 我的问题是如何输入每个对象(0

我在Firebase中有以下数据库结构:

每个对象都包含与章节及其排序顺序相对应的category和sectionIndex

我试图抓取这些数据,以便在我的菜单中显示它

我可以使用以下代码访问数据库:

firebase.database().ref().on(“value”,snapshot=>{console.log(snapshot.val());},error=>{console.log(“error:+error.code);})

控制台中有以下结果:


我的问题是如何输入每个对象(0,1,2,3,4,…,45),获取类别值并按照sectionIndex的顺序进行排序,避免重复值

Firebase在文档中列出了一组查询,允许您对数据进行一些基本操作。在您的例子中,您可能希望使用它按sectionIndex对整个数据库对象进行排序。然后,可以使用参数指定一次要获取的数量

然后,当您获得快照时,只需抓取所有类别值,并对它们执行您想要的操作。与您目前使用的.on(“value”)不同,使用.on(“child_added”)可能更容易,例如:

 var ref = firebase.database().ref("dinosaurs");
  ref.orderByChild("height").on("child_added", function(snapshot) {
  console.log(snapshot.key + " was " + snapshot.val().height + " m tall");
});
把这一点应用到你的案例中应该不难


还请记住,根据您对这些数据的其他处理方式,以及您将拥有的项目数量,在客户端进行排序可能更容易(即,与其让Firebase进行排序,不如让您的计算机/应用程序进行排序)Firebase在文档中列出了一组查询,允许您对数据进行一些基本操作。在您的例子中,您可能希望使用它按sectionIndex对整个数据库对象进行排序。然后,可以使用参数指定一次要获取的数量

然后,当您获得快照时,只需抓取所有类别值,并对它们执行您想要的操作。与您目前使用的.on(“value”)不同,使用.on(“child_added”)可能更容易,例如:

 var ref = firebase.database().ref("dinosaurs");
  ref.orderByChild("height").on("child_added", function(snapshot) {
  console.log(snapshot.key + " was " + snapshot.val().height + " m tall");
});
把这一点应用到你的案例中应该不难

还请记住,根据您对这些数据的其他处理方式,以及您将拥有的项目数量,在客户端进行排序可能更容易(即,与其让Firebase进行排序,不如让您的计算机/应用程序进行排序)