我有一个冻结的部分
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'user_model.freezed.dart';
part 'user_model.g.dart';
@freezed
class UserModel with _$UserModel {
factory UserModel({
required String id,
@Default('') String uniqueId,
@Default(DateTime.now()) DateTime dob,
}) = _UserModel;
factory UserModel.fromJson(Map<String, dynamic> json) =>
_$UserModelFromJson(json);
}
但由于DateTime.now(),我无法生成所需的文件。
如果我这样做:
factory UserModel({
required String id,
@Default('') String uniqueId,
required DateTime dob,
}) = _UserModel;
它将工作,但我必须手动编辑生成的数据如下:
dob: (json['dob'] as Timestamp?)?.toDate() ?? DateTime.now()
从
dob: DateTime.parse(json['dob'] as String),
我不能一直手动编辑它。
请告诉我如何生成包含日期时间的模型类。
1条答案
按热度按时间z9smfwbn1#
您需要在冻结的模型类中手动添加序列化逻辑。
在这种特定情况下,您需要firestore时间戳序列化逻辑。
只要加上
并为DateTime属性添加
TimestampSerializer()
注解,如下所示。最后运行build runner,就可以开始了。
希望有帮助!快乐编码:)