gpt4 book ai didi

firebase - Flutter Firestore - 如何读写对象数组

转载 作者:IT王子 更新时间:2023-10-29 07:12:46 28 4
gpt4 key购买 nike

所以我一直在努力使用 Flutter 在 Firestore 中读写对象数组。对于写作,数组永远不会在 Firestore 中更新,我不知道为什么。我试过:

.updateData({"tasks": FieldValue.arrayUnion(taskList.tasks)});

.updateData(taskList.toMap());

但两者似乎都没有做任何事情。

对于阅读,我通常会得到错误 type 'List<dynamic>' is not a subtype of type 'List<Task>' .我很确定这与我的类(class)结构有关,但我无法弄清楚。我尝试了许多不同的方法来将数据作为任务列表获取,但所有尝试都失败了。这是我当前损坏的代码:

任务列表.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();

}

任务.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'];
}

如有任何帮助或建议,我们将不胜感激!

最佳答案

我最终将任务列表设为动态类型,这解决了我的大部分阅读问题。仍然不明白为什么。

List<Task> tasks;

为了写作,我只是将 fromMap() 更改为 toMap() 以初始化任务。

'tasks': tasks.map((item) {
return item.toMap();
}).toList(),

关于firebase - Flutter Firestore - 如何读写对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54012067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com