Firestore获取根集合的所有文档和子集合

问题描述 投票:41回答:4

说我有这种结构

    A (collection): { 
       a (doc): {
           name:'Tim',
           B (collection):{
               b (doc): {
                      color:'blue'
               }
             }
          }
    }

其中AB集合,而ab文档。有没有一种方法可以通过一个查询获取根文档中包含的所有内容?如果我这样查询

db.collection("A").doc("a").get()

我刚得到name:'Tim'字段。我想要的是也获取所有B的文件。我基本上希望我的查询返回

         {
           user:'Tim',
           B (collection):{
               b (doc): {
                      color:'blue'
               }
             }
          }

是可能还是真的需要针对每个集合进行多个查询:/?

说我有一棵非常深的嵌套的表示用户个人资料的集合树,由于每次加载用户个人资料时,我都有一个读取请求的乘数1 x N,其中N是我的树的深度: /。

firebase google-cloud-firestore
4个回答
23
投票

我们知道,Cloud Firestore中的查询默认是浅层的。不支持这种查询,尽管Google将来可能会考虑使用这种查询。


28
投票

如果您担心每次提取的成本,则需要根据您的常用视图/提取需求来构造数据,而不是根据理想结构来选择数据。如果您每次都需要将这些内容放在一起,则将Consider using "maps"用于实际上不需要是文档的子集合的内容。


5
投票

添加到Matt R答案中,如果您正在使用babel或可以使用async / await,则可以用更少的代码(没有catch / then)获得相同的结果:


0
投票

这里是完整使用说明,您可以从子集合中阅读多个文档

© www.soinside.com 2019 - 2024. All rights reserved.