我在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按顺序对其进行排序,并避免复制该值。
答案 0 :(得分:0)
Firebase在文档中列出了一组查询,允许您对数据进行一些基本操作。在您的情况下,您似乎希望使用orderByChild按sectionIndex对整个数据库对象进行排序。然后,您可以使用limitToFirst or limitToLast参数指定一次获得的数量。
然后,当您获得快照时,只需获取所有categoryValues并使用它们执行您想要的操作。而不是像你现在一样使用.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进行排序,让您的计算机/应用程序进行排序)