Flutter / Firestore - 我如何获取子集合用户标识中等于当前用户的集合

Flutter / Firestore - How can i fetch collection in subcollection userid equal to currentuser

这里是我的 Firestore 结构,

我想获取课程 data.But 只有成员中具有相同用户 ID 的用户 collection.But 我不能。 这是最糟糕的用法吗?

  body: StreamBuilder(
    stream: firestore
        .collection('lessons')
        .where('members', isEqualTo: FirebaseAuth.instance.currentUser.uid)
        .snapshots(),
    builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
      if (!snapshot.hasData) {
        return Center(
          child: CircularProgressIndicator(),
        );
      } else {
        return Container(
          child: ListView(
            scrollDirection: Axis.vertical,
            children: snapshot.data.docs.map((document) {
              return Card(
                margin: EdgeInsets.all(5),
                child: Column(
                  children: [
                    ListTile(
                      title: Text(document['lessonTitle']),
                      leading: Icon(Icons.label),
                      trailing: Text(document['lessonSubtitle']),
                    )
                  ],
                ),
              );
            }).toList(),
          ),
        );
      }
    },
  ),

无法根据另一个(子)集合中的值从一个集合中 select 文档。 Firestore 中的查询只能考虑它们返回的文档中的信息。

如果您想 select 基于成员的课程,您需要在每个课程文档本身中包含该信息。常用的方法是在每个课文中添加一个members数组,使用arrayUnionarrayRemove操作对manipulate that array, and then use array-contains to query the array.