获取按值排序的Firebase数据

时间:2013-07-19 06:34:28

标签: firebase

是否有办法根据值获取一定数量的Firebase数据条目。例如,如果某个条目有100个孩子,每个孩子都有一个数字值,那么有没有办法请求具有十个最高值的孩子?

编辑:我意识到我可以简单地请求父级并遍历整个数据层次结构,直到找到具有最大值的十个,但这会浪费用户的数据,特别是如果父级包含数千个孩子

2 个答案:

答案 0 :(得分:5)

使用firebase,您正在处理nosql数据库。使用nosql数据库时,请在编写数据时生成报告,而不是在读取数据时生成报告。

例如。对于您提到的情况,维护另一个始终包含前十条记录(或指向它们的指针)的对象。

每次你向数据库写一个记录时,检查前十个列表,如果记录也属于那个,那么在这种情况下做必要的事情。

这种方法比迭代数据库更快,更有效。

答案 1 :(得分:4)

存储记录时,请使用setPriority。然后您可以检索具有最高值的那些,如下所示:

firebaseRef.child.limit(10).on(...);

或者您可以按如下方式对特定集进行分页或抓取:

firebaseRef.endAt(250).limit(10).on(...);