在多个 firestore 集合中使用 orderby
Posted
技术标签:
【中文标题】在多个 firestore 集合中使用 orderby【英文标题】:Use orderby in more than one firestore collection 【发布时间】:2020-07-14 10:22:50 【问题描述】:假设我有 3 个集合 'col1' 、 'col2' 和 'col3' 每个集合包含数千个文档 我想根据时间戳以降序将所有文档数据推送到单个对象数组中。 firestore orderBy 命令只能用于单个集合那么有什么方法可以从 firestore 推送数据,使数组默认排序?
【问题讨论】:
【参考方案1】:使用 Firestore,您一次只能查询一个集合中的文档。如果您对三个集合中的文档感兴趣,则需要三个查询。如果您希望对整组文档进行排序,则必须在所有查询完成后在客户端对它们进行排序。
【讨论】:
【参考方案2】:最有效的方法是合并排序的结果。在您的情况下,时间复杂度将是 O(n),因为您有恒定数量的数组。
如果您有兴趣,这里有一个有趣的post 对算法的解释。否则,只需使用lodash.merge 然后对其进行排序。时间复杂度将保持 O(n),因为排序是 O(log(n))。除非您的收藏中有数百万个条目,否则这并不重要。
【讨论】:
以上是关于在多个 firestore 集合中使用 orderby的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Flutter 在 Firestore 中删除集合中的所有文档
如何使用 Flutter 在 Firestore 中检查多个文档中的特定值