Чтение из «карты» в базе данных Firebase в ListView в Flutter - PullRequest
1 голос
/ 02 ноября 2019

Я пытался прочитать данные с карты в моей базе данных Firebase, чтобы отобразить их в ListView в моем первом приложении Flutter. Я безуспешно пробовал несколько способов добиться этого. Я дошел до того, что он хотя бы что-то отображает, но все это объединено в одну строку списка.

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: скриншот БД

Это приводит к следующему: скриншот эмулятора Пожалуйста, кто-нибудь может помочь мне создать мое удивительное приложение Flutter.

1 Ответ

0 голосов
/ 04 ноября 2019

Чтобы выполнить итерацию по 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 на вложенную коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...