Firebase FutureBuilder方法&x27;[]和#x27;在null上调用了。收件人:空

Firebase FutureBuilder方法&x27;[]和#x27;在null上调用了。收件人:空,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我的dart代码中出现了这个错误。如果我删除coverImage小部件,它会为其他snapshat.data的小部件提供错误信息 我的错误 widgets库捕获到异常 生成FutureBuilder时引发了以下NoSuchMethodError(脏,状态: _FutureBuilderState#45e11): 对null调用了方法“[]”。 收件人:空 已尝试呼叫: 我使用数据的方式 image: DecorationImage( fit: BoxFit.co

我的dart代码中出现了这个错误。如果我删除coverImage小部件,它会为其他snapshat.data的小部件提供错误信息

我的错误

widgets库捕获到异常 生成FutureBuilder时引发了以下NoSuchMethodError(脏,状态: _FutureBuilderState#45e11): 对null调用了方法“[]”。 收件人:空 已尝试呼叫:

我使用数据的方式

image: DecorationImage(
                fit: BoxFit.cover,
                image: (snapshot.data['coverImage']).isEmpty
                    ? AssetImage('assets/background.png')
                    : NetworkImage(snapshot.data['coverImage']),
              ),
我的颤振医生
可能是因为快照数据为空 也许您应该使用==null

image: (snapshot?.data['coverImage']).isEmpty 


很可能您的快照数据为空 也许您应该使用==null

image: (snapshot?.data['coverImage']).isEmpty 


检查数据库中是否存在['coverImage']您的错误显示此字段不在数据库中 您可以通过以下方式签入代码:


(snapshot.data['coverImage']).isEmpty | | snapshot.data['coverImage']==null)检查数据库中是否存在['coverImage']您的错误显示此字段不在数据库中 您可以通过以下方式签入代码:


(snapshot.data['coverImage']).isEmpty | | snapshot.data['coverImage']==null)Hi在您的switch语句中,您没有执行任何操作,因此您没有筛选futurebuilder处于何种状态,因此在尚未完成时尝试访问数据:

    return FutureBuilder(builder: ( context,  snapshot) {
      if(snapshot.hasData){
        return ListView();
        
      }else if (snapshot.hasError){
        return Center(child:Text(snapshot.error.toString()));
      }
      return Center(child: CircularProgressIndicator());



    }


在这里,三种主要状态得到了处理。

您好,在您的switch语句中,您没有做任何事情,因此您没有筛选futurebuilder处于哪种状态,因此在尚未完成时尝试访问数据:

    return FutureBuilder(builder: ( context,  snapshot) {
      if(snapshot.hasData){
        return ListView();
        
      }else if (snapshot.hasError){
        return Center(child:Text(snapshot.error.toString()));
      }
      return Center(child: CircularProgressIndicator());



    }


这里有三个主要的状态。

我现在意识到了这一点,并且修复了比来这里给出答案更重要的问题,但是你已经做到了:)谢谢你,伙计。我现在意识到了这一点,并且修复了比来这里给出答案更重要的问题,但是你已经做到了:)谢谢你,伙计。请不要发布你的代码截图或其他文本内容。而是发布实际文本,并使用Stack Overflow的格式化工具进行标记。请不要发布代码的屏幕截图或其他文本内容。而是发布实际文本,并使用Stack Overflow的格式化工具对其进行标记。