Искам да извличам срещи от Firestore и да ги картографирам в следния Meeting
модел:
part 'meeting.g.dart';
@JsonSerializable(explicitToJson: true)
class Meeting {
String id;
DateTime date;
Meeting(this.id, this.date);
factory Meeting.fromJson(Map<String, dynamic> json) {
return _$MeetingFromJson(json);
}
Map<String, dynamic> toJson() => _$MeetingToJson(this);
}
Документите се извличат от Firestore и след това fromJson
се извиква на итерируемия, но се хвърля изключение:
type 'Timestamp' is not a subtype of type 'String' in type cast
Когато вляза в генериран meeting.g.dart
, този ред причинява грешката
json['date'] == null ? null : DateTime.parse(json['date'] as String)
За да заобиколя проблема, опитах да променя от DateTime на Timestamp в модела, но след това се показва следната грешка при компилиране:
Error running JsonSerializableGenerator
Could not generate `fromJson` code for `date`.
None of the provided `TypeHelper` instances support the defined type.
Бихте ли ми казали как решавате този проблем? Има ли друг предпочитан начин за комбиниране на Firebase и проект Flutter с помощта на json_serializable за JSON сериализация? Може би дори да замените използването на json_serializable?
DateTime.parse(json['date'] as String)
. сDateTime.parse(json['date'].toString())
- person Gabe   schedule 22.03.2020