我希望您能够使用Firebase-UI库来创建基于Cloud Firestore的聊天功能。这个 Github存储库包含我正在使用的相关代码。问题出在查询顺序上。
请注意,查询被指定为:
这会检索最新的50条消息,但顺序不正确(最新的在顶部,最旧的在底部)。因此,我不知道如何解决这个问题。
我可以在本地再次反转查询结果,但我无法弄清楚如何做到这一点(我已经通过FirebaseUI库进行了尝试,但没有成功)。
编辑:
我的“events”集合中为每个事件设置了一个“chat”子集合:
“events/event_doc/chat/chat_doc”
使用默认顺序,我收到的消息如上所示,但
请注意,查询被指定为:
Query sChatQuery = sChatCollection.orderBy("timestamp").limit(50);
然而,我获取的是最老的50条消息,而不是最新的,且顺序正确(从旧到新)。另一方面,我可以使用以下查询:
Query sChatQuery = sChatCollection.orderBy("timestamp", Query.Direction.DESCENDING).limit(50);
这会检索最新的50条消息,但顺序不正确(最新的在顶部,最旧的在底部)。因此,我不知道如何解决这个问题。
我可以在本地再次反转查询结果,但我无法弄清楚如何做到这一点(我已经通过FirebaseUI库进行了尝试,但没有成功)。
编辑:
我的“events”集合中为每个事件设置了一个“chat”子集合:
“events/event_doc/chat/chat_doc”
我想要按以下方式获取信息:
Message 1
Message 2
Message 3
Message 4
...
使用默认顺序,我收到的消息如上所示,但
limit
指令将快照从1到50截断,而Message 51
(最新的消息)没有被检索到。
Query sChatQuery = sChatCollection.orderBy("timestamp", Query.Direction.ASCENDING).limit(50);
吗? - Alex MamoQuery sChatQuery = sChatCollection.orderBy("timestamp").limit(50);
- b-fg