【发布时间】:2020-12-28 08:38:45
【问题描述】:
我正在构建一个任务管理应用程序,其中每个用户都有多个项目(集合),每个项目内部都有任务(集合),每个任务内部都有子任务。
我能够使用此代码检索所有项目:
User user = Provider.of<User>(context);
CollectionReference projects = Firestore.instance.collection('users').document(user.uid).collection("projects");
但我的问题是如何从每个项目中获取所有任务和子任务(如果存在)并将它们列出在 StreamBuilder 中?
这是我当前的代码:
Flexible(
child: StreamBuilder<QuerySnapshot>(
stream: projects.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
return new ListView(
children:
snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document.data['project_name']),
subtitle: new Text(document.data['project_description']),
);
}).toList(),
);
},
),
),
如果项目有任务,我想在项目描述下方显示它们,如果任务有子任务,我想在其父任务下方显示它们。
【问题讨论】:
-
您可能对此article 感兴趣,它解释了如何使用云函数检索文档的子集合列表。
标签: firebase flutter google-cloud-firestore