如何在Firebase Firestore中保存对象列表

发布于 2025-01-29 22:33:12 字数 2062 浏览 3 评论 0原文

我想将数据存储到Firebase中的模型(任务)类中,但不太确定我将如何使用此模型类。

class Task {
  String title;
  String owner;
  DateTime time;

  List<AssignedTask> assignedTask;

  Task(
      {required this.title,
      required this.owner,
      required this.time,
      required this.assignedTask});

  Map<String, dynamic> toJson() {
    return {
      'title': title,
      'owner': owner,
      'time': time,
      'assignedTask': assignedTask,
    };
  }

分配的任务类

class AssignedTask {
  String name;
  String taskType;
  String employeeTask;
  bool? isComplete;
  String vehicle;

  AssignedTask(
      {required this.name,
      required this.taskType,
      required this.employeeTask,
      required this.isComplete,
      required this.vehicle});


      Map<String, dynamic> toJson() {
    return {
      'name': name,
      'taskType': taskType,
      'employeeTask': employeeTask,
      'isComplete': isComplete,
      'vehicle': vehicle,
    };
  }
}

List<Task> recentTasks = [
  Task(
    title: "18 Wheeler",
    owner: "Darth Vader",
    time: DateTime.parse("2020-06-06 12:30:00"),
    assignedTask: [
      AssignedTask(
          name: "John",
          taskType: "Mechinical",
          employeeTask: "Gear Box",
          isComplete: true,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Palpetine",
          taskType: "Trailer",
          employeeTask: "Faulty Steering System and Suspension",
          isComplete: false,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Windu",
          taskType: "Electronical",
          employeeTask: "Malfunctioning Wipers",
          isComplete: true,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Rex",
          taskType: "Mechinical",
          employeeTask: "Faulty Brakes",
          isComplete: false,
          vehicle: "18 Wheeler"),
    ],
  ),
]

是我将其保存在列表中的方式,我想要一种将其放入Firestore中的方法。我大多有一个问题,必须将分配的列表; 保存到firebase。

I want to store data into my Model (Task) class in firebase but not quite sure how I would do that with this model class.

class Task {
  String title;
  String owner;
  DateTime time;

  List<AssignedTask> assignedTask;

  Task(
      {required this.title,
      required this.owner,
      required this.time,
      required this.assignedTask});

  Map<String, dynamic> toJson() {
    return {
      'title': title,
      'owner': owner,
      'time': time,
      'assignedTask': assignedTask,
    };
  }

The AssignedTask Class

class AssignedTask {
  String name;
  String taskType;
  String employeeTask;
  bool? isComplete;
  String vehicle;

  AssignedTask(
      {required this.name,
      required this.taskType,
      required this.employeeTask,
      required this.isComplete,
      required this.vehicle});


      Map<String, dynamic> toJson() {
    return {
      'name': name,
      'taskType': taskType,
      'employeeTask': employeeTask,
      'isComplete': isComplete,
      'vehicle': vehicle,
    };
  }
}

List<Task> recentTasks = [
  Task(
    title: "18 Wheeler",
    owner: "Darth Vader",
    time: DateTime.parse("2020-06-06 12:30:00"),
    assignedTask: [
      AssignedTask(
          name: "John",
          taskType: "Mechinical",
          employeeTask: "Gear Box",
          isComplete: true,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Palpetine",
          taskType: "Trailer",
          employeeTask: "Faulty Steering System and Suspension",
          isComplete: false,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Windu",
          taskType: "Electronical",
          employeeTask: "Malfunctioning Wipers",
          isComplete: true,
          vehicle: "18 Wheeler"),
      AssignedTask(
          name: "Rex",
          taskType: "Mechinical",
          employeeTask: "Faulty Brakes",
          isComplete: false,
          vehicle: "18 Wheeler"),
    ],
  ),
]

This is how I had it saved as in a List, I want a way to put that into firestore. I mostly have an Issue where I have to save the List assignedTask; to firebase.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清音悠歌 2025-02-05 22:33:12

您犯的错误是,您在Tojson中通过列表,但还需要将它们转换为JSON。因此,您的任务类应该是:

class Task {
  String title;
  String owner;
  DateTime time;

  List<AssignedTask> assignedTask;

  Task({
      required this.title,
      required this.owner,
      required this.time,
      required this.assignedTask});

  Map<String, dynamic> toJson() {
      return {
          'title': title,
          'owner': owner,
          'time': time,
          'assignedTask': assignedTask.map(a => a.toJson()).toList(),
      };
  };
}

The mistake you are making is, you are passing a list in toJson, but they also need to be converted to json. So your Task class should be like:

class Task {
  String title;
  String owner;
  DateTime time;

  List<AssignedTask> assignedTask;

  Task({
      required this.title,
      required this.owner,
      required this.time,
      required this.assignedTask});

  Map<String, dynamic> toJson() {
      return {
          'title': title,
          'owner': owner,
          'time': time,
          'assignedTask': assignedTask.map(a => a.toJson()).toList(),
      };
  };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文