My Dto的结构如下所示-
@freezed
abstract class MessageDto with _$MessageDto{
factory MessageDto({
String message,
@JsonKey(name: 'message_type') String messageType,
@JsonKey(name: 'sender_id') String senderId,
@JsonKey(name: 'sent_at') Timestamp sendAt,
}) = _MessageDto;
factory MessageDto.fromFirestore(DocumentSnapshot doc) {
Map<String, dynamic> json = doc.data;
return MessageDto.fromJson(json);
}
factory MessageDto.fromJson(Map<String, dynamic> json) => _$MessageDtoFromJson(json);
}
1.产生器不支援TimeStamp资料类型。
1.当我使用DateTime dataType时,它正在生成代码,但在将documentSnaphot数据解析为
未行程的例外状况:型别'Timestamp'不是型别转换中型别'String'的子型别
3条答案
按热度按时间db2dz4w81#
您可以将自定义的
fromJson
和toJson
函数传递给@JsonKey
。https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/JsonKey.htmlszqfcxe22#
最好将时间戳转换为日期时间
ui7jx7zq3#
在我的情况下,仅从json方法是不够的..我想使用毫秒FromEpoch从/到json转换:
以及在类型为Timestamp的冻结字段中: