Не могу разобраться с этой проблемой. Я установил следующий документ в firestore. И мне нужно преобразовать поле «посещаемость» в список.
Map<String, dynamic> data = {
"name": "memberName",
"attendance": {
"0": {"morning": false, "noon": true, "night": true},
"1": {"morning": false, "noon": true, "night": true}
},
"deposits": {
"0": {"date": "date", "amount": 100},
"1": {"date": "date", "amount": 100}
}
};
Использование StreamProvider. Поток не имеет проблем. использование toList ()
Документы извлекаются. Но модели терпят неудачу. Получение исключения: [тип '_InternalLinkedHashMap' не является подтипом типа 'Карта'] Классы моделей:
class Member {
String id;
String name;
List<Attendance> attendances;
List<Deposit> deposits;
Member({this.id, this.name, this.attendances, this.deposits});
Member.fromSnapshot(DocumentSnapshot doc) {
Map<String, dynamic> json = doc.data;
id = doc.documentID;
name = json['name'];
if (json['attendance'] != null) {
Map<String, dynamic> atdmap = json['attendance'];
attendances = new List<Attendance>();
atdmap.forEach((k, v) {
attendances.add(new Attendance.fromJson(v));
});
}
if (json['deposits'] != null) {
Map<String, dynamic> dmap = json['deposits'];
deposits = new List<Deposit>();
dmap.forEach((k, v) {
deposits.add(new Deposit.fromJson(v));
});
}
}
}
class Attendance {
bool morning;
bool noon;
bool night;
Attendance({this.morning, this.noon, this.night});
Attendance.fromJson(Map<String, dynamic> json) {
morning = json['morning'];
noon = json['noon'];
night = json['night'];
}
}
class Deposit {
String date;
int amount;
Deposit({this.date, this.amount});
Deposit.fromJson(Map<String, dynamic> json) {
date = json['date'];
amount = json['amount'];
}
}
Где происходит ошибка. нужна небольшая помощь спасибо.