@ angular / fire:如何使用startAt()和endAt()检索结果

时间:2019-02-08 05:27:58

标签: angular firebase firebase-realtime-database

我正在为带有角度和Firebase设计的聊天应用程序开发虚拟滚动。对话消息存储在Firebase实时数据库中。 enter image description here

(当我们扩展一个孩子时,数据看起来像这样)

enter image description here

我需要先加载最近的50个对话,然后当用户向上滚动聊天时,我需要加载下一个50个对话,依此类推。

我尝试使用startAt(), endAt()方法来检索数据,但是firebase没有返回任何结果。

1 个答案:

答案 0 :(得分:0)

对于第一次查询,您需要使用.limit(50);对于连续查询,您需要使用.limit(50)和.startAfter()。您不必使用endAt或endAfter。

您还需要根据某个字段对结果进行排序,并对所有查询使用相同的字段进行排序。 因此,对于第一个查询:

assignProcessingGroup(Function<String, String> assignmentRule)

然后将最后的文档参考存储在响应中。

对于所有连续查询:

ref.where(...).orderBy(...).limit(50);