簡體   English   中英

flutter 中的錯誤“用於 null 值的空檢查運算符”

[英]Error "Null check operator used on a null value" in flutter

錯誤

在此處輸入圖像描述

我嘗試使用記錄的用戶 uid 從 firebase 獲取用戶數據。 而且我還使用了 model

model代碼

Details detailsFromJson(String str) => Details.fromJson(json.decode(str));

class Details {
  Details({
    required this.id,
    required this.age,
    required this.drinkstalkSE,
    required this.drinksUnderstandSE,
    required this.familyChildren,
   
  });
  String id;
  String age;
  String drinkstalkSE;
  String drinksUnderstandSE;
  String familyChildren;
 

  factory Details.fromJson(Map<String, dynamic> json) => Details(
        id: json["id"] ?? "",
        age: json["age"] ?? "",
        drinkstalkSE: json["drinkstalkSE"] ?? "",
        drinksUnderstandSE: json["drinksUnderstandSE"] ?? "",
        familyChildren: json["familyChildren"] ?? "",
        
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "age": age,
        "drinkstalkSE": drinkstalkSE,
        "drinksUnderstandSE": drinksUnderstandSE,
        "familyChildren": familyChildren,
       
      };
}

后端代碼

 bool loading = false;

  @override
  initState() {
    super.initState();
    loading = true;

    getDetails();
  }


  Details? oneUserDetails;
  Future<void> getDetails() async {
    final sp = context.read<SignInProvider>();
    final id = sp.uid;
    final reference = FirebaseFirestore.instance.doc('users/$id');
    final snapshot = reference.get();

    final result = await snapshot.then(
        (snap) => snap.data() == null ? null : Details.fromJson(snap.data()!));
    print('result is ====> $result');
    setState(() {
      oneUserDetails = result;
      loading = false;
    });
  }

屏幕代碼

在此處輸入圖像描述

數據庫圖像

在此處輸入圖像描述

在我的代碼中沒有任何錯誤顯示我認為問題出在我的 model 但我不明白錯誤是什么以及如何解決它。 如何解決這個錯誤?

據我所知,model有問題。在model中,列表是drinksUnderstandSE和drinkstalkSE都是字符串,但在數據庫中,它是列表,所以它應該是一個列表。

您使用的值已列出,您需要在 class 中為它們創建一個單獨的部分。 如果您不知道具體如何操作,請將您的 json 數據粘貼到本網站,它會為您處理。 你會看到你的錯誤。

https://javiercbk.github.io/json_to_dart/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM