【发布时间】:2024-05-23 01:40:02
【问题描述】:
我想创建个人资料页面,当然个人资料页面必须只有 1 人的帖子。那么我们如何编写代码呢?
我的主页上有所有使用此代码的人的帖子:
@override
Widget build(BuildContext context) {
return StreamBuilder(
// stream: FirebaseFirestore.instance.collectionGroup('Posts').snapshots(),
stream: FirebaseFirestore.instance.collectionGroup('Posts').snapshots(),
builder: (context, snapshotMsg) {
if (!snapshotMsg.hasData) {
return Center(child: CircularProgressIndicator());
} else {
return ListView.builder(
itemCount: snapshotMsg.data.documents.length,
itemBuilder: (context, index) {
if (!snapshotMsg.hasData) {
return Center(child: CircularProgressIndicator());
} else {
final dataMsg = snapshotMsg.data.documents[index];
return FutureBuilder(
future: FirebaseFirestore.instance
.collection('Users')
.doc(dataMsg.reference.parent.parent.id)
.get(),
builder: (context, snapshotUser) {
if (!snapshotMsg.hasData) {
return Center(child: CircularProgressIndicator());
} else {
final dataUser = snapshotUser.data;
if (dataUser == null) {
return Center(child: CircularProgressIndicator());
} else {
return homePageCard(context,dataMsg: dataMsg, dataUser: dataUser,);
}
}
},
);
}
},
);
}
});
}
但如前所述,此代码包含所有用户的帖子。我应该在这里改变什么才能看到我的帖子?
( 我试着
stream:FirebaseFirestore.instance.collection('Users').doc().collection('Posts').snapshots()
这段代码,但它给出了错误......)
【问题讨论】:
-
你需要传入 doc(),即 docId,所以它知道去哪里找,
stream:FirebaseFirestore.instance.collection('Users').doc(**AddDocId**).collection('Posts').snapshots() -
感谢您的评论:):)
标签: firebase flutter google-cloud-firestore