Как добавить список объектов в Firestore?

#dart #flutter #google-cloud-firestore

#dart #flutter #google-облако-firestore

Вопрос:

У меня есть модель с именем customStep , и я хочу отправить список пользовательских шагов, вызываемых customSteps , в firestore.

Вот код для этого:

 Firestore.instance
    .collection('customSteps')
    .add({'customSteps': customSteps});
  

В коллекции customSteps есть документы, и эти документы состоят из поля customSteps для хранения массива customStep. Однако этот код помещает пустой массив в firestore. Как я могу это решить?

Комментарии:

1. Является ли customSteps списком объектов?

Ответ №1:

Чтобы отправить объект в Firestore, вам нужно преобразовать свой объект в map, добавьте эту функцию в свой класс:

   Map<String, dynamic> toMap() {
    return {
      'yourField1': yourValue1,
      'yourField2': yourValue1,
    };
  }
  

Чтобы отправить список пользовательских шагов, вам нужно преобразовать все объекты в карту, вы можете сделать это следующим способом:

   static List<Map> ConvertCustomStepsToMap({List<CustomStep> customSteps}) {
    List<Map> steps = [];
    customSteps.forEach((CustomStep customStep) {
      Map step = customStep.toMap();
      steps.add(step);
    });
    return steps;
  }
  

Ответ №2:

Вам нужно создать массив map, как показано на рисунке ниже. Эта карта будет вашим «объектом».

Итак, в вашей модели вам нужно объявить:

 class Model {
   ArrayList<CheckList> checklist = null
}


class CheckList implements Serializable {
        String item = null,
        boolean isChecked = false
} 
  

введите описание изображения здесь
введите описание изображения здесь

Ответ №3:

В Firebase вы не можете сохранить пользовательскую модель внутри Document

Что вы действительно можете сделать, так это создать CustomStep и CustomSteps коллекцию.

Внутри вашего CustomSteps Document вы можете создать array of Reference , который на самом деле является путем к вашему другому CustomStep документу.

Пример коллекции

Это подразумевает получение идентификатора каждый раз, когда вы создаете CustomStep в firestore и используете его в качестве ссылки на.

Надеюсь, это поможет!!