Firebase 吸气剂';文件';在空颤振火基上调用

Firebase 吸气剂';文件';在空颤振火基上调用,firebase,flutter,Firebase,Flutter,当我按下聊天选项卡时。在检索数据之前,它会显示错误数秒 对null调用了getter“documents” 收件人:空 尝试呼叫:文档 Widget chatRoomsList() { return StreamBuilder( stream: chatRooms, builder: (context, snapshot) { print(snapshot.data.documents.length); return

当我按下聊天选项卡时。在检索数据之前,它会显示错误数秒

对null调用了getter“documents”

收件人:空

尝试呼叫:文档

      Widget chatRoomsList() {
    return StreamBuilder(
      stream: chatRooms,
      builder: (context, snapshot) {
        print(snapshot.data.documents.length);

        return snapshot.hasData ? ListView.builder(
                itemCount: snapshot.data.documents.length,
                shrinkWrap: true,
                itemBuilder: (context, index) {
                  return ChatRoomsTile(
                    userName:snapshot.data.documents[index].data['chatRoomId'].toString().replaceAll("_", "").replaceAll(Constants.myName, ""),
                    chatRoomId: snapshot.data.documents[index].data["chatRoomId"].toString(),
                  );
                })
            : Container();
      },
    );
  }
我试过这个。还是一样的错误

    Widget chatRoomsList() {
    return StreamBuilder(
      stream: chatRooms,
      builder: (context, snapshot) {
        print(snapshot.data.documents.length);
if(snapshot.hasData){
  return ListView.builder(
      itemCount: snapshot.data.documents.length,
      shrinkWrap: true,
      itemBuilder: (context, index) {
        return ChatRoomsTile(
          userName:snapshot.data.documents[index].data['chatRoomId'].toString().replaceAll("_", "").replaceAll(Constants.myName, ""),
          chatRoomId: snapshot.data.documents[index].data["chatRoomId"].toString(),
        );
      });
}
else
  {
        return Container();
  }

      },

当snapshot.data为空时,您正在尝试打印它的文档。如果快照有数据,则可以打印它。如下更改代码:

     if(snapshot.hasData){
        print(snapshot.data.documents.length);
    

谢谢你。它成功了。好了,现在你可以接受并投票决定答案:)我希望我能。购买我的声誉低于15:(现在您可以这样做:)要将答案标记为已接受,请单击答案旁边的复选标记,将其从灰色切换为已填写:)