从Firebase DB中的“地图”读取到Flutter中的ListView

时间:2019-11-01 22:00:25

标签: firebase flutter dart google-cloud-firestore flutter-layout

我一直在尝试从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应用程序。

1 个答案:

答案 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映射更改为子集合。