Firebase分页:如何执行最佳分页?

时间:2017-12-23 01:20:39

标签: android firebase firebase-realtime-database pagination

我有一个firebase结构,如下所示:

<root>
 |-my-app-name
   |-post
     |-<uid1>
       |-negatedtimestamp
       |-sub nodes
       |-...
     |-<uid2>
       |-negatedtimestamp
       |-sub nodes
       |-...

我通过limitToFirst(10)orderbyChild("negatedtimestamp")完成了我的分页,以检索最近的10个项目。最后一个uid已保存,并在loadmore()中使用startAt(<uid>)再次查询。

就可伸缩性而言,当节点发布增长到十万或几十万时,查询第一个/最后一个将导致更慢的时间,因为它要求数据库考虑所有节点。有一个解决方案是通过仅将最近10个项目的密钥存储在另一个节点中,检索它们,并直接从父节点读取。这是在这里建议的:https://stackoverflow.com/a/39713060/9088278

但是,为了执行分页,当loadmore()函数被命中时,最近的10个节点正在改变,因为它需要加载旧的10,然后再加载旧的10。我怎么能用这种方式做分页呢?或者有其他选择吗?

0 个答案:

没有答案