firebase - 将此firebase实时数据库结构转换为firestore数据结构的最佳方法?
问题描述
我想将此firebase 实时数据库结构转换为 firestore 数据结构,请提供帮助。
我想要 Posts(collection)/pin(collection)/pid(document)/然后是 post description 这样的结构,但我知道一个集合不能包含另一个集合,所以我应该怎么做?
All_Posts 节点包含 pid 和 pin 仅用于共享该帖子,然后使用 pin 和 pid 获取帖子详细信息。
我的结构中还有一件事 Posts-->734...(pin)-->pid-->then post details 因为我想检索所有 pid 和 pin 下的详细信息。所以我应该这样做还是像 Posts-->pids(包含 pin 号)--> 然后获取详细信息。我应该做哪一个?
解决方案
Cloud Firestore 数据模型
Cloud Firestore 是一个 NoSQL、面向文档的数据库。与 SQL 数据库不同,没有表或行。相反,您将数据存储在文档中,这些文档被组织成集合。
每个文档都包含一组键值对。Cloud Firestore 针对存储大量小文档进行了优化。
所有文档都必须存储在集合中。文档可以包含子集合和嵌套对象,它们都可以包含像字符串这样的原始字段或像列表这样的复杂对象。
集合和文档是在 Cloud Firestore 中隐式创建的。只需将数据分配给集合中的文档。如果集合或文档不存在,Cloud Firestore 会创建它。
访问链接以获取有关Cloud Firestore 数据模型的更多信息
您的数据库结构
关于您的案例场景,您可以在其他集合中拥有集合,这些集合称为子集合,如聊天应用程序的示例所示:
您可以使用Collection Group Queries访问具有相同集合 ID 的这些子集合。
将数据从 Firebase 实时数据库移动到 Cloud Firestore
为了保持这个答案简短,如果您计划将数据从 Firebase 实时数据库移动到 Cloud Firestore ,请查看此链接以咨询最佳做法和建议。
推荐阅读
- c# - System.IO.File 不可调用的成员“文件”不能像方法一样使用
- javascript - React:将函数属性传递给纯子组件 - 重新渲染
- django - /admin/login/ 处的 OperationalError 没有这样的表:django_site
- javascript - 不变性应该抛出错误,但它不在字符串中
- php - 如何在 PHP 的 curl 函数中包含“压缩”参数?
- java - Cassandra 不启动:在启动期间遇到:预期变量中的 URI:[cassandra.config]。找到[cassandra.yaml]
- python - 来自 Pandas Dataframe 的 Spacy 训练数据
- c# - LINQ 查询从列表中提取包含任何关键字的所有答案
- java - 变量超出范围?
- python - 如何防止sqlalchemy中的相关对象持久化?