小编Man*_*wal的帖子

如何将具有时间戳字段的firestore doc数据转换为通过Freezed dart包生成的数据类?

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);
}

Run Code Online (Sandbox Code Playgroud)
  1. 生成器不支持时间戳数据类型。
  2. 当我使用 DateTime dataType 时,它​​正在生成代码,但在解析 documentSnaphot 数据时抛出异常

未处理的异常:类型“Timestamp”不是类型转换中类型“String”的子类型

dart flutter

6
推荐指数
1
解决办法
2097
查看次数

不可变或可变数据模型,应该用于设计谷歌表单、谷歌文档等软件?

我们正在开发一种软​​件,该软件将在 Flutter 中写入大量内存并占用大量内存。它还将支持撤消和重做功能。目前我们在不可变数据结构方面的经验为零。在研究flutter的过程中,我想到了freezeed包,不可变数据模型的代码生成器,这促使我去理解不可变数据集。但是使用不可变数据模型会带来各种挑战,例如 -

  1. 更新数据模型的深层嵌套子项
  2. 即使在任何嵌套数据模型中进行微小更改(如 google 文档中的字母更改),对整个数据的深度复制也会使我们的应用程序变慢。
  3. 我们计划保留同一模型的多个副本以支持撤消或重做,但这会占用最终用户的大量内存空间。

immutability dart flutter

2
推荐指数
1
解决办法
555
查看次数

标签 统计

dart ×2

flutter ×2

immutability ×1