集合参考文档参考

时间:2020-07-17 05:44:11

标签: flutter google-cloud-firestore

我正在尝试在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();

DB structure

1 个答案:

答案 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