【发布时间】:2021-12-06 09:02:30
【问题描述】:
我创建了 2 个不同的集合(用户和关注)。
现在我想:
-
根据 id 获取存在于关注
collection("list")中的文档。 -
在
currentUid = doc.id的第一个集合中获取用户数据(用于第二个集合)。 -
在
ListTile中显示数据。
第一次收藏
await FirebaseFirestore.instance.collection("users").doc(currentUid).set({"name":username,"photoUrl":url,"uid":currentUid});
第二次收集
await FirebaseFirestore.instance.collection("follow").doc(currentUid).collection("list").doc(otherId);
我用过这个,但它不能正常工作
body:StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection("follow")
.doc(user!.uid)
.collection("list")
.snapshots(),
builder: (context, snapshot1) {
if (!snapshot1.hasData) {
return Container();
} else {
return StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection("users")
.where("uid",
isEqualTo:
snapshot1.data!.docs.map((e) => e.id).toList())
.snapshots(),
builder: (context, snapshot2) {
if (!snapshot2.hasData) {
return Container();
} else {
return ListView(
children: snapshot2.data!.docs.map((e) {
return ListTile(
leading: CircleAvatar(
backgroundImage: NetworkImage(e.get('url')),
radius: 30,
),
title: Text(e.get('username')),
);
}).toList(),
);
}
},
);
【问题讨论】:
标签: android firebase flutter dart google-cloud-firestore