【问题标题】:When fetching document from Firestore, am I also getting the collections inside this document?从 Firestore 获取文档时,我是否也获取了该文档中的集合?
【发布时间】:2019-12-07 20:39:55
【问题描述】:

如果是这样,如何获得它?因为在进行文档引用时,您只能访问该文档的字段而不是集合。

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    从 Firestore 获取文档时,我是否也得到了 此文档中的集合?

    不,在获取文档时,您只会获取该文档的字段。

    正如document 中所述,使用 Firestore,您可以“创建浅层查询以在文档级别检索数据,而无需检索整个集合或任何嵌套的子集合”。 (请注意,实时数据库并非如此:如果您获取一个给定的节点,您也将获得所有的子节点。

    如果你想访问文档的子集合,你必须fetch them by using their IDs。 如果您使用其中一个客户端 SDK(即“移动/Web 客户端库”),则无法查询文档的子集合 ID。这意味着您需要知道给定文档的子集合 ID 是什么才能获取它们(您可以将这些集合的 ID 保存在其父文档的字段中)。

    另一方面,可以使用 服务器 客户端库(如 Java 或 Node.js 库)列出文档的所有子集合,请参阅 https://firebase.google.com/docs/firestore/query-data/get-data#list_subcollections_of_a_document

    【讨论】:

    • 感谢您的回答。这对我来说似乎太复杂了,所以我将重新考虑数据库结构。
    • 其实它可能并不像看起来那么复杂!如果您预先知道子集合的 ID(即数据模型是固定的),这很容易:您只需并行发出多个查询,例如使用 Promise.all()
    • 这实际上是一个定价问题,据我所知,即使你这样做了,你也会为其他文件付费。所以改变数据库结构对我来说是一种轻松的方式来完成我想要的事情。虽然你回答这个问题的态度让我很高兴。谢谢
    猜你喜欢
    • 2018-04-09
    • 2018-04-04
    • 2020-08-01
    • 1970-01-01
    • 2018-09-03
    • 2022-01-21
    • 2022-01-20
    • 2020-08-08
    • 2021-12-16
    相关资源
    最近更新 更多