Так что я боролся с чтением и записью массивов объектов в Firestore, используя Flutter.Для записи массив никогда не обновляется в Firestore, и я не знаю почему.Я пробовал:
.updateData({"tasks": FieldValue.arrayUnion(taskList.tasks)});
и
.updateData(taskList.toMap());
, но ни один из них, похоже, ничего не делает.
Для чтения я обычно получаю ошибку type 'List<dynamic>' is not a subtype of type 'List<Task>'
.Я почти уверен, что это как-то связано с моей структурой класса, но я не могу понять это.Я пробовал много разных способов получить данные в виде списка задач, но все попытки не увенчались успехом.Вот мой текущий неработающий код:
TaskList.dart
class TaskList {
String name;
List<Task> tasks;
TaskList(this.name, this.tasks);
Map<String, dynamic> toMap() => {'name': name, 'tasks': tasks};
TaskList.fromSnapshot(DocumentSnapshot snapshot)
: name = snapshot['name'],
tasks = snapshot['tasks'].map((item) {
return Task.fromMap(item);
}).toList();
}
Task.dart
class Task {
String task;
bool checked;
Task(this.task, this.checked);
Map<String, dynamic> toMap() => {
'task': task,
'checked': checked,
};
Task.fromMap(Map<dynamic, dynamic> map)
: task = map['task'],
checked = map['checked'];
}
Любая помощь или совет приветствуется!