在Firebase Firestore中仅获取用户所属的组?

c6ubokkw  于 2023-01-31  发布在  其他
关注(0)|答案(2)|浏览(135)

我试图只获取用户所属的组,但使用当前代码,我显示了所有现有的组。

Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("My groups"),
        automaticallyImplyLeading: false,
      ),
      body: StreamBuilder(
        stream: userColeccion.doc('$userID').collection("grupos").snapshots(),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            return Column(
              children: [
                Text("groups users"),
                Expanded(
                  child: StreamBuilder(
                    stream: FirebaseFirestore.instance
                        .collection("grupos")
                        .snapshots(),
                    builder: (context, groupSnapshot) {
                      if (groupSnapshot.hasData) {
                        var groupList = (groupSnapshot.data
                                as QuerySnapshot<Map<String, dynamic>>)
                            .docs
                            .map((d) => Group.fromJson(d.data()))
                            .toList();

                        return ListView.builder(
                          itemCount: groupList.length,
                          itemBuilder: (context, index) {
                            var group = groupList[index];
                            return Card(
                              child: ListTile(
                                title: Text(group.namegroup),
                              ),
                            );
                          },
                        );
                      }

                      return const Center(child: CircularProgressIndicator());
                    },
                  ),
                ),
              ],
            );
          }

          return const Center(child: CircularProgressIndicator());
        },
      ),
    );
  }
}

当输入“users”时,你可以输入每个用户的id,在该id内有一个称为“groups”的集合,该集合存储用户所属的不同组的键,利用该键,我打算在处于“users”级别的“groups”集合中搜索,但它存储存在的组的键。
收藏品“usuarios”

收藏“grupos”

总之,我想在屏幕上只显示用户所属的组,密钥由用户存储,非常感谢您的任何帮助或解释。

x4shl7ld

x4shl7ld1#

要从grupos获取文档,其中namegroup等于Grupo 2,您可以use a query

stream: userColeccion.doc('$userID').collection("grupos")
  .where("namegroup", "==", "Grupo 2")
  .snapshots(),
rn0zuynd

rn0zuynd2#

“UID”,isEqualTo:字段中的FirebaseAuth.instance.currentUser!. uid...还添加了当前的UID,因此应检查

相关问题