首页 > 解决方案 > firebase Firestore中的深度collectionGroup查询

问题描述

我在 Firestore 中有一个集合结构,如下所示:

/teams/**/days/**/milestones/**
/teams/1WCraAZXLSNSoMvkZuSV/days/20210822/milestones/xyzdocid

所以,最后我会在里程碑集合中有一组文档。我正在尝试将里程碑作为集合组进行查询。如何为此设置 collectionGroup 索引?

对于 collectionGroup 来说,这是否太深了?这个索引是什么样子的?是否可以在 firebase 模拟器中创建此 collectionGroup 索引?

标签: google-cloud-firestorefirebase-tools

解决方案


对于遇到同样问题的任何人:

  1. 在模拟器中,collectionGroups 和所有与索引相关的操作都会自动工作。你不需要设置任何特别的东西。这没有很好的记录。我花了很长时间试图找出如何在模拟器中创建索引。这也意味着,您将需要使用实时 Firebase 帐户进行大量测试,因为大多数事情不会自动在那里工作。

  2. collectionGroup 格式仅基于集合的名称,而不是您的索引或任何类型的路径。这意味着,如果您在结构中的任何地方都有称为“里程碑”的集合,那么 collectionGroup 概念会将它们组合在一起。这是非常强大的,但要注意同名但目的不同的集合/子集合。


推荐阅读