我正在尝试在Flutter中执行Firestore交易。
因此,我需要通过documentReference
。
基于标识符访问“课程”文档时没有问题。
问题在于获取活动用户通行证时。我要使用的where
返回Query
,而.reference()
返回CollectionReference
(交易方法不接受)。
如何根据其字段值获取对文档的引用。
要有趣的是:DB规则不允许我读取所有通行证。我只能访问那些具有我的UserID(已仔细检查-正在工作)的用户。
DocumentReference lessonRef =
await _db.collection('lessons').document(lesson.identifier);
CollectionReference passRef = await _db
.collection('passes')
.where('userID', isEqualTo: user.identifier).reference();
答案 0 :(得分:0)
您可以像这样获得查询文档的DocumentReference:
Firestore.instance
.collection('passes')
.where('userID', isEqualTo: user.identifier)
.snapshots()
.listen((reference) =>
data.documents.forEach((doc) => /*do what you want with doc.reference*/));
(我不是Flutter的专家,我无法测试代码,但是答案基于the API reference)