【发布时间】:2019-08-07 10:25:55
【问题描述】:
我正在 Firestore 中创建一个“深度”路径方案。 (6 部分路径、3 个集合和 3 个文档)类似于 collection/document/collection/document/collection/document 或更真实的示例:comments/{category_name}/videos/{video_id}/usercomments/{auto_generated_id}
所以问题在于 Firestore 允许在嵌套子集合中为当前不存在的文档的任何路径添加文档。因此,当在路径末尾添加用户评论文档时,如果 video_id 和 category_name 文档尚不存在,但文档为空(或如控制台中所说,“不要'不存在"),因此不会出现在查询或快照中。
将会发生的情况是usercomments 集合中会有很多文档,但我无法检索video_ids 的列表,因为videos 集合中的文档在技术上都是“空的”。
我怎样才能保持这个路径逻辑方案并且仍然能够通过没有字段的更高级别的文档进行查询?有没有办法在添加评论时检查video_id当前是否存在,如果不简单地添加一个像布尔值exists: true这样的字段?
编辑:我猜唯一的方法是在创建文档时通过云函数添加字段exists: true,但我不确定是否在子集合中创建文档来自客户端的新文档将触发创建更高级别文档的功能。等我知道了再更新。
更新:感谢@Renaud Tarnec 提供的信息,我能够创建一个云功能,该功能将使用字段设置更高级别的文档,以便它们“存在”/实际创建。事实证明,您可以从函数中嵌套文档路径的上下文中提取所有通配符,以正确动态地编辑更高级别的文档字段。
【问题讨论】:
标签: firebase data-structures google-cloud-firestore