在空Flutter Firebase上调用了getter'documents'

时间:2020-10-22 08:30:25

标签: firebase flutter

当我按聊天标签时。在检索数据之前,它将显示错误几秒钟。

getter'documents'被调用为null。

收件人:空

尝试致电:文档

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

      },

1 个答案:

答案 0 :(得分:1)

您试图在快照为null的情况下打印其文档。如果快照中有数据,则可以打印。像这样更改代码:

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