上下文
我正在建造一个信使。因此,我不必一次加载所有消息,而是想实现一个分页系统。基本上,我希望能够以升序和降序获取消息,以显示用户尚未拥有的最新消息。
我的实现
我可以使用以下简单的代码行轻松获得最后的X条消息:
message_listener.queryOrdered(byChild: "date").queryLimited(toLast: X).observe(.childAdded) { (snapshot) in
...
}
但是我如何获得我还没有的最近的Y条消息?
为此,我尝试了以下解决方案。我试图找到一种方法来反转数据的顺序,但似乎Firebase没有简单的方法可以做到这一点。
message_listener.queryOrderedByKey().queryStarting(atValue: last_message_id).queryLimited(toFirst: Y).observe(.childAdded) { (snapshot) in
...
}
这是Firebase结构