Как отобразить данные всей коллекции документов и сделать ее потоком во флаттере? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть Firestore, например:

enter image description here

Моя цель - отобразить каждую запись из набора дней -> 'uid' - > Сбор данных в модель данных с именем «День» и возврат ее в качестве потока поставщику.

Каждая запись в этой коллекции в дате, которая содержит ссылку на перевод. Это хранилище передачи:

enter image description here Это дата-модель Дня:

class Day {
  Day({this.date, this.transfers});

  final String date;
  final List<Transfer> transfers;
}

Это код, который я пробовал (в настоящее время отсутствует десериализация Список передач, но я был потерян в этот момент):

  Stream<List<Day>> get dayTransferData {
    return daysCollection.document('QeG5SgSoYPXCpPkU86Z9ReShr2j2').collection('').snapshots().map(_brewListFromSnapshot);
  }

  List<Day> _brewListFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc) {
      return Day(
        date: doc.documentID,
        transfers: doc.data.values,
      );
    }).toList();
  }

Я искал на стеке, но все ссылались на коллекцию по имени.

Как получить данные коллекции и правильно отобразить их?

1 Ответ

0 голосов
/ 25 февраля 2020

Класс пользователя с JSON преобразованием: JSON и сериализацией

class User {
  String name;
  int age;

  User({
    this.name,
    this.age,
  });

  factory User.fromJson(String str) => User.fromMap(json.decode(str));

  String toJson() => json.encode(toMap());

  factory User.fromMap(Map<String, dynamic> json) => User(
        name: json["name"],
        age: json["age"],
      );

  Map<String, dynamic> toMap() => {
        "name": name,
        "age": age,
      };
}

Создание списка пользователей:

users = jsonList.map((json) => User.fromJson(json)).toList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...