【问题标题】:Best way to get data from another collection when rendering documents in Firestore?在 Firestore 中呈现文档时从另一个集合中获取数据的最佳方法?
【发布时间】:2021-05-08 13:34:45
【问题描述】:

我在 Firestore 中有一个 Person 集合,它有一个数组,其中的 id 引用另一个名为 tasks 的集合。 tasks 集合包含所有存在的任务,并且 Person 中的数组具有属于该人的特定任务。

来自特定人员的人员集合:

Firestore-root
     |
     --- person (collection)
          |
          --- personId (document)
                 |
                 --- taskDoing (field) - Array type
                        |
                        --- (tasksId) 0 - FEFEveDoZOv7WFsQLQvP
                                      1 - DEDSFgefeOv7WFsQLQvP
                                      2 - Wffw3f3333f7WFsQLQvP

任务集合:

Firestore-root
     |
     --- task (collection)
          |
          --- taskId (document)
                 |
                 --- title (field) - String type
                 

所以在 Person 集合中,我有一个包含 tasksIds 的数组,我想从一个特定的 Person 中检索任务数据,例如仅从这些 ID 中的 Task 集合中的标题。

如何检索数据?

我查看了参考字段,但它一次只能指定一个参考值。什么也可能起作用,而不是只在 Person 中存储 id,也许我可以将引用存储在数组中?

喜欢:

task/FEFEveDoZOv7WFsQLQvP/

【问题讨论】:

    标签: google-cloud-firestore nosql


    【解决方案1】:

    如果您希望您的应用显示一个人及其当前任务,并且您只想显示任务的名称,那么我很可能会将“着装数据”(任务名称)放入个人文档,以便我可以通过一次网络调用来呈现此屏幕。但是,如果您想更改任务的名称,这将相对昂贵,因为您必须更改包含它的每个人员文档。但如果任务名称是永久性的,那么我几乎肯定会这样做。

    如果有大量的着装数据,那么您必须进行一些数字运算,看看是否更经济(在工程和美元成本方面)将它们全部打包到上市文件(个人文件)或获取它们分别地。请记住,使用 Firestore(以及一般的 NoSQL),您最大的成本将是读写操作,而不是文档的大小。

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 2020-08-15
      • 2021-05-02
      • 2019-02-05
      • 2019-07-01
      • 2018-04-20
      • 2021-09-11
      • 2020-05-30
      相关资源
      最近更新 更多