2

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

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

4

2 回答 2

5

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

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

每次将记录写入数据库时​​,请检查前十名列表,如果该记录也属于那里,在这种情况下,请执行必要的操作。

这种方法比遍历数据库更快、更有效。

于 2013-07-19T09:24:37.617 回答
4

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

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

或者您可以按如下方式分页或获取特定集合:

firebaseRef.endAt(250).limit(10).on(...);
于 2013-07-19T14:54:54.220 回答