我具有以下方式的Firestore数据库结构:
数据库结构
MyPost的结构
我有两个主要的收藏集,即:
用户
所有帖子
在users集合中,存储了所有用户信息,显示名称,dp_url等 并且在All_posts集合中,每个文档都指示已上传帖子的用户(文档的ID与用于标识上传帖子的用户的用户uid相同)。在all_posts的每个文档中,都有一个名为my_posts的子集合,其中包含文档,即该特定用户的帖子!
我不知道如何使用嵌套的Streambuilders来访问all_posts集合中每个文档(用户)的my_post子集合中的每个帖子。
到目前为止我尝试过什么:
StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('all_posts').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
return Text("Loading data...");
else {
return ListView(
children: snapshot.data.documents.map((document) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('/all_posts/${document.data['uid']}/my_posts').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
return Text("Loading data...");
else {
return FutureBuilder<QuerySnapshot>(
future: Firestore.instance.collection('all_posts/${document.data['uid']}/my_posts').getDocuments(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.documents.length,
shrinkWrap: true,
itemBuilder: (context, index) {
return ListTile();
},
);
} else {
return CircularProgressIndicator();
}
},
);
}
},
);
}).toList(),
);
}
},
),