繁体   English   中英

如何使用颤振在 Firebase Firestore 中保存对象列表

[英]How to save a list of objects in Firebase Firestore with flutter

我想将数据存储到我在 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 的方法。 我主要有一个问题,我必须保存List assignedTask; 到火力基地。

您犯的错误是,您在 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(),
      };
  };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM