dia*_*zAP 1 javascript firebase google-cloud-firestore
所以我有以下代码:
firebase.firestore().collection(collection).doc(doc).collection(collection)
.orderBy("time", "asc").onSnapshot(function(querySnapshot) {
querySnapshot.docChanges().forEach(function(change) {
if (change.type === "added") {
msgData(change);
}
if (change.type === "modified") {
msgData(change);
}
});
});
Run Code Online (Sandbox Code Playgroud)
它让我可以看到旨在作为聊天应用程序的文档列表
我将迭代在消息元素中检索的数据,在消息元素下,有一个输入文本区域用于添加新消息。消息将从最小时间到最大时间(时间戳)排序,以便最新消息将出现在输入文本区域的正上方。插画聊天应用

问题是如果文档数量很大,聊天应用程序会很重,因为它加载大量文档,所以我想限制消息以避免这个问题。但每当我发现解决方案是按降序对时间进行排序,然后进行限制。如果我这样做,最新的聊天消息(输入文本区域上方的消息)是我获取的最旧的数据......
如果不添加一些客户端代码来对结果进行第二次排序,则单个查询不可能实现这一点。
您需要进行降序排序,限制为 5。
firebase.firestore().collection(collection).doc(doc).collection(collection)
.orderBy("time", "desc").limit(5)
Run Code Online (Sandbox Code Playgroud)
这应该会按时间为您提供 5 个最新文档。但是,如果您想按升序迭代或显示文档,则必须在客户端中按升序时间对文档重新排序。
| 归档时间: |
|
| 查看次数: |
3416 次 |
| 最近记录: |