每个集合的 Firebase 集合组限制

Firebase collection group limit for each collection

我在查询数据时遇到 Firestore 问题。我有一个名为 conversations 的集合。在每个对话文档中,都有一个名为 messages 的集合。每条消息都有一个字段time,这是一个时间戳。

如何查询收集组以便在每个对话中获取最新消息?

我正在使用适用于网络的 SDK,版本 9。

集合组查询似乎无法做到这一点。使用 .orderBy() 将对消息子集合中的所有文档进行排序。您可能需要获取所有用户对话的列表,然后分别从每个对话中获取最后一条消息。

请注意,使用 .collectionGroup('messages') 将在所有名为 messages 的集合中查找文档,包括其他用户。所以确保你有一些过滤器。

您可以将最后一条消息存储在对话文档本身中,但每次添加新消息时都会产生额外的写入。