簡體   English   中英

我嘗試從 firebase 獲取數據並給我這個錯誤 _CastError(空檢查運算符用於 null 值)

[英]I try to get data from firebase and give me this error _CastError (Null check operator used on a null value)

我嘗試從數組字段中獲取數據,但出現錯誤。 錯誤是:

_CastError(用於 null 值的空檢查運算符)

我不知道這段代碼的問題在哪里。

當我在此行List.from(value.data().['totkm']).forEach((element)中刪除 null 檢查運算符(!)時,VSCode 也給我錯誤並且 VSCode 要求我進行 null 檢查操作員(。)。

List<int>totkm=[];
getdata() async {
    await FirebaseFirestore.instance 
        .collection("TotalKM")
        .doc()
        .get()
        .then((value) {
      setState(() {
        List.from(value.data()!['totkm']).forEach((element) {
          totkm.add(int.parse(element));
        });
      });
    });
  }

問題是:

await FirebaseFirestore.instance 
    .collection("TotalKM")
    .doc()

在沒有 arguments 的情況下調用doc()會生成對新的、不存在的文檔的引用。 然后您對該引用調用get() ,它為您提供該不存在文檔的快照,因此沒有任何數據。 然后調用value.data()! 是一個錯誤,因為使用! 您告訴編譯器您知道data()不能是null ,這是錯誤的。

要最輕松地消除錯誤,請使用? 而不是! .

但更有可能的是,您需要將要加載的文檔的文檔 ID 傳遞到對doc()的調用中: ...doc("idOfDocumentYouWantToLoad").get()...

暫無
暫無

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

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