需要从 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 两个集合中获取数据并将所有数据合并在一起