Я пытаюсь использовать json картографы для обработки сериализации и десериализации Flutter Firebase Firestore. Прямо сейчас я использую пакет json_serializable , который преодолел большинство препятствий.
Я вижу проблему при вставке / обновлении. Я должен быть в состоянии поместить свой объект дротика в форму json Map
, а не форму String
, чтобы правильно вставить его. Хотя библиотека обеспечивает реализацию функции Map<String, dynamic> toJson() => ...
, эта функция не конвертирует вложенные объекты, что в основном делает ее бесполезной.
Чтобы обойти это, я конвертирую json в String
, затем вернемся к Map
, сделав следующее:
final json = jsonEncode(reg);
final jsonMap = jsonDecode(json);
Это явно плохо. Как я могу получить свой объект dart в форме json Map
лучше?
Мне также приходится делать странные вещи, такие как получение данных моментального снимка, захват идентификатора документа и затем вставьте идентификатор в карту данных перед десериализацией, чтобы у меня был идентификатор в модели данных, а затем удалите его перед сериализацией. Должен быть лучший способ для автоматической сериализации и десериализации из firebase. Чего мне не хватает?
final snapshot = document.data;
snapshot['id'] = documentID;