如何将Firestore DocumentSnapshot转换为dart对象实例

时间:2019-10-26 23:04:15

标签: flutter dart

我有一个如下类,需要从FireStore读/写。

class Customer{
   String fname;
   String fname;

   Map<String, dynamic> toJson() => {
    'fname': fname,
    'lname': lname
  };

  static Customer fromDocument(DocumentSnapshot doc){
    Customer customer = Customer();
    customer.fname = doc.data['fname'];
    customer.lname = doc.data['lname'];
    return customer;
  }
}

如何避免编写代码来序列化(toJson)/反序列化(fromDocument)?对于亚马逊,如果我必须在Java中执行此操作,则可以使用Gson库进行序列化和反序列化。

1 个答案:

答案 0 :(得分:1)

您可以使用json_serializable软件包,该软件包会生成用于序列化/反序列化的代码。有了它,您的代码将如下所示:

@JsonSerializable()
class Customer {
  Customer({this.fname, this.lname});

  final String fname;
  final String lname;

  Map<String, dynamic> toJson() => _$CustomerToJson(this);

  static Customer fromJson(Map<String, dynamic> json) =>
      _$CustomerFromJson(json);
}