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

问题描述 投票:1回答:1

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

firebase flutter dart google-cloud-firestore flutter-layout
1个回答
0
投票

要遍历每个Group内部的User映射,您需要先获取您的Users集合:

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

© www.soinside.com 2019 - 2024. All rights reserved.