来自Json的Flutter Firestore返回Null?

Posted

技术标签:

【中文标题】来自Json的Flutter Firestore返回Null?【英文标题】:Flutter Firestore fromJson Return 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 我解决了我如何尝试的问题 【参考方案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

以上是关于来自Json的Flutter Firestore返回Null?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中加入来自两个 Firestore 集合的数据?

Flutter:使用来自 Firestore 的多集合流创建动态更新的 DataTable

在 Flutter 中的垂直 ScrollView 内的水平 ListView 中显示来自 Firestore 的数据

使用来自firestore数据库的geoflutterfire查询结果,使用flutter应用程序返回null或啥都没有,但语法没有错误

有没有办法通过flutter查看来自云Firestore的用户的关注者或关注者?

Flutter:显示来自经过身份验证的 Firebase Auth 用户的带有 StreamBuilder 的一些 Firestore 集合