我一直在尝试从Firebase数据库中的地图读取数据,以将其显示在我的第一个Flutter应用程序的ListView中。我没有尝试过几种方法来实现这一目标。我已经到了至少显示一些东西的地方,但是它们都聚集在列表的一行中。
body: StreamBuilder(
stream: Firestore.instance.collection('Users').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Text('Loading data.. Please wait');
return ListView(
children: snapshot.data.documents.map<Widget>((document) {
return new ListTile(
title: new Text(document['Group'].toString()),
);
}).toList(),
);
}
)
我的数据库中的地图: DB screenshot
结果是: emulator screenshot 请有人可以帮我构建我的Flutter应用程序。
答案 0 :(得分:0)
要遍历每个Group
内部的User
映射,您需要首先检索用户集合:
List users = List();
final docs = await Firestore.instance.collection('user').getDocuments();
docs.forEach((doc) {
users.add(doc.data)
});
然后,您需要遍历视图中的该列表,类似于以下内容:
ListView.builder(
itemCount: users['Group'].length
itemBuilder: (context, index) {
return Text(users['Group'][index].toString());
}
如果您想使用StreamBuilder,我相信您必须将Group
映射更改为子集合。