该文档没有任何关于如何将子集合添加到文档的示例。我知道如何将文档添加到集合以及如何将数据添加到文档,但是如何将集合(子集合)添加到文档?
不应该有这样的方法:
dbRef.document("example").addCollection("subCollection")
原文由 rgoncalv 发布,翻译遵循 CC BY-SA 4.0 许可协议
该文档没有任何关于如何将子集合添加到文档的示例。我知道如何将文档添加到集合以及如何将数据添加到文档,但是如何将集合(子集合)添加到文档?
不应该有这样的方法:
dbRef.document("example").addCollection("subCollection")
原文由 rgoncalv 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
2021 年 1 月 13 日编辑:
根据有关 数组成员资格 的更新文档,现在可以使用
whereArrayContains()
方法根据数组值过滤数据。一个简单的例子是:假设我们有一个聊天应用程序,其数据库结构类似于以下内容:
要在文档中写入
subCollection
,请使用以下代码:如果你想创建
messages
收集和调用addDocument()
1000 次肯定会很昂贵,但这就是 Firestore 的工作方式。如果需要,您可以切换到 Firebase 实时数据库,写入次数无关紧要。但是关于 Supported Data Types in Firestore,其实可以用数组,因为是支持的。在 Firebase 实时数据库 中,您还可以使用array
,但这是一种反模式。 Firebase 不建议使用数组的众多原因之一是它使安全规则无法编写。Cloud Firestore 可以存储数组,不支持查询数组成员或更新单个数组元素。但是,您仍然可以利用 Cloud Firestore 的其他功能对此类数据建模。 这 是解释得很好的文档。
您也不能创建包含 1000 条消息的子集合并将它们全部添加到数据库,同时考虑单个记录。每条消息都将被视为一次写操作。总共 1000 次操作。上图没有显示如何检索数据,它显示了一个数据库结构,其中你有这样的东西: