我正在为带有角度和Firebase设计的聊天应用程序开发虚拟滚动。对话消息存储在Firebase实时数据库中。
(当我们扩展一个孩子时,数据看起来像这样)
我需要先加载最近的50个对话,然后当用户向上滚动聊天时,我需要加载下一个50个对话,依此类推。
我尝试使用startAt(), endAt()
方法来检索数据,但是firebase没有返回任何结果。
答案 0 :(得分:0)
对于第一次查询,您需要使用.limit(50);对于连续查询,您需要使用.limit(50)和.startAfter()。您不必使用endAt或endAfter。
您还需要根据某个字段对结果进行排序,并对所有查询使用相同的字段进行排序。 因此,对于第一个查询:
assignProcessingGroup(Function<String, String> assignmentRule)
然后将最后的文档参考存储在响应中。
对于所有连续查询:
ref.where(...).orderBy(...).limit(50);