首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得子集合文档所属的根文档?

如何获得子集合文档所属的根文档?
EN

Stack Overflow用户
提问于 2021-11-28 21:18:40
回答 2查看 161关注 0票数 0

在获取子集合中特定文档的快照之后,我希望将相关数据获取到它所属的根文档。

例如,有一个收藏餐厅,每个餐厅都有一个产品子集合。

在搜索某一餐厅的特定产品后,如何获得该产品所属的餐厅数据?我是否需要进行另一次搜索,或者如何从产品快照中获得它?

代码语言:javascript
运行
复制
QuerySnapshot snapshot = await FirebaseFirestore.instance
    .collectionGroup('products').get();

QueryDocumentSnapshot product = snapshot.docs.elementAt(0);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-29 00:26:25

实际上,有一种非常简单的方法可以做到这一点,并且它利用了文档的ref.path。您可以将ref.path字符串拆分为它的组件部分--记住,它是指向文档的完全"/“分隔的路径,例如:

代码语言:javascript
运行
复制
restaurants/{restaurantId}/products/{productId}
topCollection/{topdocumentId}/nextCollection/{nextDocumentId}/.../bottomCollection/{bottomDocumentId}

显然,前两段是通向“父”文档的路径--不管树的深度如何(我碰巧有一个非常深的树结构)。然后,您可以获取“顶级父”:

代码语言:javascript
运行
复制
db.collection(topCollection).doc(topdocumentId).get()
票数 1
EN

Stack Overflow用户

发布于 2021-11-29 02:04:34

要查找product的父/餐馆文档,您需要沿着引用/父链遍历:

代码语言:javascript
运行
复制
var restaurantRef = product.reference.parent.parent;

您仍然需要使用以下内容对该文档进行get

代码语言:javascript
运行
复制
var restaurantDoc = await restaurantRef.get();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70147534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档