我有一个包含很多"列表的数据库"结构如下:
我希望获得10个列表,以特定优先级值开始或结束,大小值(子节点)范围在9到10.5之间,并按优先级排序结果。
我已经查看过大量的SO帖子和Firebase示例,但我似乎找不到任何解决方案。
在Firebase中,这是不是真的可以吗?据我所知,这是一个非常常见的用例。
有什么解决方案吗?如果没有,你会如何解决它?
答案 0 :(得分:6)
您可能需要查看Firebase文档中的Complex Queries。
查看范围查询。 startAt()
和endAt()
允许您通过设置查询的起点和终点来查找具有特定尺寸的鞋子。
例如,如果我们想要查找介于9
和10.5
之间的所有鞋子,请合并orderByChild()
,startAt
和endAt
。类似的东西:
var ref = new Firebase(URL);
ref.orderByChild("size").startAt("9").endAt("10.5").on("child_added", function(snapshot) {
console.log(snapshot.key());
});
如果您可以提供代码示例,那么它将更容易确定解决方案。如果您想通过多个键订购查询,则可能需要调整数据模型。