说我有这种结构
A (collection): {
a (doc): {
name:'Tim',
B (collection):{
b (doc): {
color:'blue'
}
}
}
}
其中A
和B
是集合,而a
和b
是文档。有没有一种方法可以通过一个查询获取根文档中包含的所有内容?如果我这样查询
db.collection("A").doc("a").get()
我刚得到name:'Tim'
字段。我想要的是也获取所有B的文件。我基本上希望我的查询返回
{
user:'Tim',
B (collection):{
b (doc): {
color:'blue'
}
}
}
是可能还是真的需要针对每个集合进行多个查询:/?
说我有一棵非常深的嵌套的表示用户个人资料的集合树,由于每次加载用户个人资料时,我都有一个读取请求的乘数1 x N
,其中N是我的树的深度: /。
我们知道,Cloud Firestore中的查询默认是浅层的。不支持这种查询,尽管Google将来可能会考虑使用这种查询。
如果您担心每次提取的成本,则需要根据您的常用视图/提取需求来构造数据,而不是根据理想结构来选择数据。如果您每次都需要将这些内容放在一起,则将Consider using "maps"用于实际上不需要是文档的子集合的内容。
添加到Matt R答案中,如果您正在使用babel或可以使用async / await,则可以用更少的代码(没有catch
/ then
)获得相同的结果:
这里是完整使用说明,您可以从子集合中阅读多个文档