繁体   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