alpayergul
alpayergul

Reputation: 33

Flutter Firebase failed assertion: line 360 pos 10: 'data != null'

Widget BlogsList() {
return Container(
  color: UniversalVariables.blackColor,
  child: blogsStream != null
      ? Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            StreamBuilder(
              stream: blogsStream,
              builder: (context, snapshot) {
                if (!snapshot.hasData || snapshot.data.documents.isEmpty) ;

                return ListView.builder(
                  
                    padding: EdgeInsets.symmetric(horizontal: 16),
                    itemCount: snapshot.data.documents.length,
                    shrinkWrap: true,
                    itemBuilder: (context, index) {
                      return BlogsTile(
                        
                        authorName: snapshot
                            .data.documents[index].data['authorName'],
                        title: snapshot.data.documents[index].data["title"],
                        description:
                            snapshot.data.documents[index].data['desc'],
                        imgUrl:
                            snapshot.data.documents[index].data['imgUrl'],
                      );
                    });
              },
            )
          ],
        )
      : Container(
          alignment: Alignment.center,
          child: CircularProgressIndicator(),
        ),
); }

I want to make it mandatory. giving a red screen and open.I want to solve this problem. I am pulling data with Firebase. I'm having trouble switching between pages, but could not solve my error.

Upvotes: 0

Views: 888

Answers (1)

Josteve Adekanbi
Josteve Adekanbi

Reputation: 12733

The error occurred is in your builder, you returned the ListView whether snapshot.hasData is true or not.

Try

builder: (context, snapshot) {
    if (!snapshot.hasData || snapshot.data.documents.isEmpty){
       return Center(child: Text("Loadin..."));
     }

     return ListView.builder(    
       padding: EdgeInsets.symmetric(horizontal: 16),
       itemCount: snapshot.data.documents.length,
       shrinkWrap: true,
       itemBuilder: (context, index) {
            return BlogsTile(
               authorName: snapshot.data.documents[index].data['authorName'],
               title: snapshot.data.documents[index].data["title"],
               description:snapshot.data.documents[index].data['desc'],
               imgUrl:snapshot.data.documents[index].data['imgUrl'],
             );
        });
},

Upvotes: 2

Related Questions