Home > Mobile >  I try to get data from firebase and give me this error _CastError (Null check operator used on a nul
I try to get data from firebase and give me this error _CastError (Null check operator used on a nul

Time:03-01

I try to fetch data from array field, but I give the error. The error is:

_CastError (Null check operator used on a null value)

I don't know where is the problem in this code.

when I deleted null check operator(!) in this line List.from(value.data()!['totkm']).forEach((element), VSCode also give me error and The VSCode asks me to put a null check operator(!).

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));
        });
      });
    });
  }

CodePudding user response:

The problem is:

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

Calling doc() without arguments generates a reference to a new, non-existing document. You then call get() on that reference, which gives you a snapshot for that non-existing document, so without any data. Then calling value.data()! is an error, as by using ! you tell the compiler that you know the data() cannot be null, and that is false.

To get rid of the error most easily, use ? instead of !.

But more likely, you'll need to pass the document ID of the document you want to load into the call to doc(): ...doc("idOfDocumentYouWantToLoad").get()....

  • Related