【问题标题】:Flutter Firestore fromJson Return Null?来自Json的Flutter Firestore返回Null?
【发布时间】:2022-01-22 10:37:36
【问题描述】:

我一直在尝试这个,但它一直返回 null 我哪里做错了?

class UserData {
  final String? name;

  UserData(
      {this.name});

  Map<String, dynamic> toJson() {
    return {
      'name': name,
    };
  }

  UserData.fromJson(Map<String, dynamic> doc)
      : this(name: doc['name']! as String);


  factory UserData.fromDocument(DocumentSnapshot doc) {
    return UserData.fromJson(doc.data() as Map<String, dynamic>);
  }
}

我也在尝试这样

factory UserData.fromDocument(DocumentSnapshot doc) {
    Map<String, dynamic> data = doc.data() as Map<String, dynamic>;
    print(data['name']); // data is retuning correct
    UserData user = UserData.fromJson(doc.data() as Map<String, dynamic>);
    print(user.name); // data is returning null
    return UserData.fromJson(doc.data() as Map<String, dynamic>);
  }

【问题讨论】:

  • 你检查doc.data()是否从数据库返回数据?
  • 我检查了,数据正在返回
  • @PeterHaddad 我解决了我如何尝试的问题

标签: json flutter dart google-cloud-firestore


【解决方案1】:

改变这个:

UserData.fromJson(Map<String, dynamic> doc)
  : this(name: doc['name']! as String);

to,因为this() 会返回一个全新的类实例:

UserData.fromJson(Map<String, dynamic> doc)
  : name = doc['name']! as String;

【讨论】:

  • 仍然返回 null
猜你喜欢
  • 2019-10-01
  • 2019-01-21
  • 1970-01-01
  • 2023-01-16
  • 2021-06-29
  • 2020-11-07
  • 1970-01-01
  • 2014-12-16
  • 2020-10-19
相关资源
最近更新 更多