firebase - 使用 CollectionGroup 查询时如何获取子集合的父文档 ID?
问题描述
我正在使用集合组查询,但无法获取父文档 ID。
collection
document1
subC
doc1
document2
subC
doc2
在运行查询时,我想获取父文档的名称,即document1
,document2
等,但它返回我doc1
and doc2
。这是我的查询:
var col = FirebaseFirestore.instance.collectionGroup('subC').where('foo', isEqualTo: 'bar');
var snapshot = await col.get();
for (var doc in snapshot.docs) {
print(doc.id); // Prints doc1, doc2
}
解决方案
doc.id
返回基础文档 ID。您需要首先获取当前的DocumentReference
( doc1
, doc2
),使用该 get CollectionReference
( subC
),然后获取它的父级,即您的document1
and document2
。
所以,你需要这个:
var col = FirebaseFirestore.instance.collectionGroup('subC').where('foo', isEqualTo: 'bar');
var snapshot = await col.get();
for (var doc in snapshot.docs) {
print(doc.reference.parent.parent?.id); // Prints document1, document2
}
推荐阅读
- android - 我没有在没有错误的情况下在活动中获得 recyclerView
- apache-spark - 在 spark scala 中动态创建 CSV 文件头
- reactjs - 仅当状态与当前值不同时如何在反应挂钩中设置状态
- mysql - Laravel 7 从 SQL 文件中填充突变
- c++ - 声明指向自定义优先级队列的指针
- android - 如何从我的视图模型更新元素的回收器视图?
- ruby-on-rails - 不推荐使用 Fixnum - 当我运行 rake db: seed
- python - 如何让我的运行长度编码脚本在 10 个字符后仍然起作用
- c++ - 排序数组仅适用于某些集合,不适用于其他集合
- ios - swift 5 中的本地化(更改语言按钮不起作用)