Android端Firestore如何获取子集合的Document ID
访问指定随机ID文档的实现方案
你的数据层级结构如下:
根集合
Collection→ 固定ID文档document→ 子集合subCollection→ 随机ID文档randomDocumentId→ 待访问子集合subSubCollection
场景1:已提前留存随机文档ID
如果你当初在subCollection下创建这个随机ID文档时,已经把返回的文档ID存储到了上层文档、本地存储或者业务数据库中,直接按层级拼接路径即可访问下层集合,以Web端JavaScript Firestore SDK为例:
const targetCollection = db .collection('Collection') // 替换为你的根集合名 .doc('你的固定document名') // 替换为第二层固定ID文档的实际名称 .collection('subCollection') // 替换为第三层子集合的实际名称 .doc('你已留存的randomDocumentId值') // 填入你保存的随机文档ID .collection('subSubCollection'); // 替换为你要访问的最下层集合名 // 后续可直接对targetCollection执行增删改查操作
所有平台的Firestore SDK逻辑完全一致,按上述层级拼接路径即可。
场景2:未留存随机文档ID
如果你没有保存过这个随机ID的值,需要先查询subCollection下的文档列表拿到ID,再访问下层集合,可搭配where条件缩小查询范围:
// 先查询subCollection下的文档 const subColRes = await db .collection('Collection') .doc('你的固定document名') .collection('subCollection') // 如有筛选条件可在此处添加:.where('字段名', '==', '匹配值') .get(); // 遍历查询结果获取随机ID,访问下层集合 subColRes.forEach(docItem => { const randomDocId = docItem.id; // 此处拿到randomDocumentId const targetCollection = docItem.ref.collection('subSubCollection'); // 执行你需要的业务逻辑 console.log('当前随机文档ID为:', randomDocId); })
内容的提问来源于stack exchange,提问作者Cynthia
相关产品推荐
相关产品推荐

