Firebase 用户创建的活动列表的最佳数据模型是什么?

Firebase 用户创建的活动列表的最佳数据模型是什么?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我是新来的。我正在尝试为我的应用程序设计数据模型。我想知道当我有一个用户列表和用户创建的活动列表时,设计数据模型的最佳方法是什么。这是正确的型号吗?我认为这样会更容易展示。任何建议或改进请告诉我。谢谢你的建议 activities(collection) -- userid1(document) ---- activityid1 ---- type : hiking ---- timestamp ---- comment:

我是新来的。我正在尝试为我的应用程序设计数据模型。我想知道当我有一个用户列表和用户创建的活动列表时,设计数据模型的最佳方法是什么。这是正确的型号吗?我认为这样会更容易展示。任何建议或改进请告诉我。谢谢你的建议

activities(collection)
  -- userid1(document)
     ---- activityid1
          ---- type : hiking
          ---- timestamp
          ---- comment: comment-text
     ---- activityid2
          ---- type : jogging
          ---- timestamp
          ---- comment: comment-text
  -- userid2
     ---- activityid1
          ---- type : hunting
          ---- timestamp
          ---- comment: comment-text

首先,很难说最好的方法是什么,这取决于您的项目需要以及您需要如何处理数据

注意:文档的大小也限制为1MB

我不确定活动列表是什么,但如果您需要为每个用户存储活动,这些活动将扩展并继续增长,那么我个人建议将活动作为每个用户文档下的子集合。原因是,与Firebase实时数据库不同,Firestore中的查询在默认情况下是浅层的,因此在获取数据时,可以提高速度并节省一些成本

我认为这将引导您获得一些构建数据模型的一般想法


希望这能对您有所帮助。

使用nosql数据库对数据建模没有全面的“最佳方法”。有效的模型是满足您想要进行的查询的模型。在创建有效的模型之前,您必须了解您的查询。我会将所有活动文档存储在一个名为activities的集合下,并设置进行该活动的当前用户的userID字段。然后,您可以使用
where()
方法调用firestore,只获取特定用户的活动,还可以获取所有活动并显示在提要中。例如,您可以设置一个标志,说明活动是私有的还是公共的,然后将公共活动作为提要显示给其他用户。当您执行子集合活动时,查询能力会受到限制。希望这能有所帮助!