需要从 Firestore 的多个集合中查询

Posted

技术标签:

【中文标题】需要从 Firestore 的多个集合中查询【英文标题】:Need a query out of multiple collections from Firestore 【发布时间】:2021-12-10 07:47:54 【问题描述】:

实在找不到怎么办,怎么在我的RecyclerView中获取某个部门的所有值。 首先,这有可能吗? 这就是我的 Firestore 数据库的松散方式,“blue_bottle”和“tops_national”是文档的一部分:

我想用同一部门的“blue_bottle”和“tops_national”中的所有产品填充我的 RecyclerView。 所以我需要一个我认为正确的 DocumentReference:

private val promoOnedb = FirebaseFirestore.getInstance()
private val promoOneRef: DocumentReference = promoOnedb.collection("tops")
    .document("promotions")

但是我现在如何查询 DocumentReference 以显示所有产品,在两个集合中显示同一部门的所有产品?请。

【问题讨论】:

也发布在reddit.com/r/Firebase/comments/qet8jt/… 【参考方案1】:

在 Firestore 中读取多个集合的唯一方法是使用 collection group query,它从具有特定名称的所有集合中读取。

o 使用单个集合组查询,您可以从所有 blue_bottle 集合或所有 tops_national 集合中读取。 Firestore 中没有功能可以通过单个操作读取所有blue_bottle 集合所有tops_national 集合。为此,您将需要至少两个(集合组)查询,从而合并应用程序代码中的结果。

如果您想通过一次操作读取所有产品,则需要将它们存储在同名的集合中,例如products。只有这样,您才能使用单个集合组查询一次性读取所有内容。

【讨论】:

以上是关于需要从 Firestore 的多个集合中查询的主要内容,如果未能解决你的问题,请参考以下文章

Firestore 集合查询作为颤动中的流

如何通过在 Firestore 中的查询从索引中获取多个文档到其他索引

我可以获取从 Firestore 集合组查询中获取的文档的路径或引用吗?

如何从 firestore 两个集合中获取数据并将所有数据合并在一起

FLUTTER,FIRESTORE:我有一个流构建器,它从集合中的所有文档中返回某个字段..如何添加查询?

在多个 firestore 集合中使用 orderby