在獲取子集合中特定檔案的快照后,我想將關聯資料獲取到它所屬的根檔案。
例如,有一個集合餐廳,每個餐廳都有一個產品子集合。
搜索到某個餐廳的某個產品后,如何獲取該產品所屬的餐廳資料?我是否需要再次搜索或如何從產品快照中獲取它?
QuerySnapshot snapshot = await FirebaseFirestore.instance
.collectionGroup('products').get();
QueryDocumentSnapshot product = snapshot.docs.elementAt(0);
uj5u.com熱心網友回復:
實際上有一種非常簡單的方法可以做到這一點,它利用了檔案的 ref.path。您可以將 ref.path 字串拆分為其組成部分 - 請記住,它是檔案的完整“/”分隔路徑,例如:
restaurants/{restaurantId}/products/{productId}
topCollection/{topdocumentId}/nextCollection/{nextDocumentId}/.../bottomCollection/{bottomDocumentId}
顯然,前兩段是“父”檔案的路徑——無論樹的深度如何(我碰巧有一個非常深的樹結構)。然后,您可以獲取“頂級父級”:
db.collection(restaurants).doc(topdocumentId).get()
uj5u.com熱心網友回復:
要查找 的父/餐廳檔案product,您需要沿著參考/父鏈向上走:
var restaurantRef = product.reference.parent.parent;
您仍然需要使用get該檔案:
var restaurantDoc = await restaurantRef.get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/369202.html
標籤:火力基地 扑 镖 谷歌云firestore
