google-cloud-firestore - firebase Firestore中的深度collectionGroup查询
问题描述
我在 Firestore 中有一个集合结构,如下所示:
/teams/**/days/**/milestones/**
/teams/1WCraAZXLSNSoMvkZuSV/days/20210822/milestones/xyzdocid
所以,最后我会在里程碑集合中有一组文档。我正在尝试将里程碑作为集合组进行查询。如何为此设置 collectionGroup 索引?
对于 collectionGroup 来说,这是否太深了?这个索引是什么样子的?是否可以在 firebase 模拟器中创建此 collectionGroup 索引?
解决方案
对于遇到同样问题的任何人:
在模拟器中,collectionGroups 和所有与索引相关的操作都会自动工作。你不需要设置任何特别的东西。这没有很好的记录。我花了很长时间试图找出如何在模拟器中创建索引。这也意味着,您将需要使用实时 Firebase 帐户进行大量测试,因为大多数事情不会自动在那里工作。
collectionGroup 格式仅基于集合的名称,而不是您的索引或任何类型的路径。这意味着,如果您在结构中的任何地方都有称为“里程碑”的集合,那么 collectionGroup 概念会将它们组合在一起。这是非常强大的,但要注意同名但目的不同的集合/子集合。
推荐阅读
- python - Python - 将不同值的组合计算为总和
- python-3.x - 如何在使用 pyinstaller 编译可执行文件时包含来自同一目录的其他模块?
- c# - 转换 json 表对象的数组
- java - 如果两个版本都需要支持,如何处理 Java 中的包名称更改?
- scala - 将名为整数的 mssql 表导入 spark 数据帧时出错
- git - 如何将本地存储库上的 URL 从 GitLab 更改为 GitHub?
- php - 长孟加拉字符段落不存储在 MySQL 数据库中,但长英文段落存储
- python - python paho-mqtt - 没有收到 mqtt 消息
- node.js - 许多查询postgres(节点),没有并行查询?
- django - 关于类别 get_absolute_url 的反向 url