Android RangeError(索引):无效值:不在范围0..5内,包括:6:颤振SliverChildBuilderDelegate

Android RangeError(索引):无效值:不在范围0..5内,包括:6:颤振SliverChildBuilderDelegate,android,firebase,flutter,google-cloud-firestore,Android,Firebase,Flutter,Google Cloud Firestore,我使用的是firestore和flattersliverchildbuilderdelegate。 SliverChildBuilderDelegate构建无限索引。但是我的firestore只有6个文档。 结果 RangeError(索引)错误:无效值:不在范围0..5内, 含:7 我怎样才能解决这个问题 SliverChildBuilderDelegate中有一个childCount属性,但不起作用 还尝试了偏移 new SliverFixedExtentList( itemE

我使用的是
firestore
flattersliverchildbuilderdelegate。
SliverChildBuilderDelegate
构建无限索引。但是我的
firestore
只有6个文档。 结果

RangeError(索引)错误:无效值:不在范围0..5内, 含:7

我怎样才能解决这个问题

SliverChildBuilderDelegate中有一个childCount属性,但不起作用 还尝试了偏移

new SliverFixedExtentList(
       itemExtent: 80.0,

delegate: new SliverChildBuilderDelegate(

(context, index ,{childCount:5}) => StreamBuilder<QuerySnapshot>(

stream: Firestore.instance.collection('books').orderBy('open_date')
.snapshots(),

builder: (context, snapshot) {

                        print("\n\n\n\n "+snapshot.data.documents.length.toString());
                        print("\n\n\n\n\n\n");
                      if (!snapshot.hasData) return CircularProgressIndicator();
                      else if(index<snapshot.data.documents.length){
                      return Card(
                        child: ListTile(

                          leading: child1,
                          title: Text(snapshot.data.documents[index]['title']),
                          subtitle:
                              Text(snapshot.data.documents[index]['result']),
                        ),
                      );
                      }else{
                      return Text("data");}
                    },
                  ),
            ),
          ),
新建SliverFixedExtentList(
项目范围:80.0,
代表:新SliverChildBuilderDelegate(
(上下文,索引,{childCount:5})=>StreamBuilder(
流:Firestore.instance.collection('books')。orderBy('open_date'))
.snapshots(),
生成器:(上下文,快照){
打印(“\n\n\n\n”+snapshot.data.documents.length.toString());
打印(“\n\n\n\n\n\n”);
如果(!snapshot.hasData)返回CircularProgressIndicator();

else if(index尝试从SliverChildBuilderDelegate参数中删除childCount。相反,将childCount直接放在生成器的代码块之后。(下面是一个要查看的示例:)

新建SliverFixedExtentList(
项目范围:80.0,
代表:新SliverChildBuilderDelegate(
(上下文、索引)=>StreamBuilder(
流:Firestore.instance.collection('books')。orderBy('open_date'))
.snapshots(),
生成器:(上下文,快照){
打印(“\n\n\n\n”+snapshot.data.documents.length.toString());
打印(“\n\n\n\n\n\n”);
如果(!snapshot.hasData)返回CircularProgressIndicator();
else if(索引
    new SliverFixedExtentList(
       itemExtent: 80.0,

    delegate: new SliverChildBuilderDelegate(

    (context, index) => StreamBuilder<QuerySnapshot>(

    stream: Firestore.instance.collection('books').orderBy('open_date')
    .snapshots(),

    builder: (context, snapshot) {

                        print("\n\n\n\n "+snapshot.data.documents.length.toString());
                        print("\n\n\n\n\n\n");
                      if (!snapshot.hasData) return CircularProgressIndicator();
                      else if(index<snapshot.data.documents.length){
                      return Card(
                        child: ListTile(

                          leading: child1,
                          title: Text(snapshot.data.documents[index]['title']),
                          subtitle:
                              Text(snapshot.data.documents[index]['result']),
                        ),
                      );
                      }else{
                      return Text("data");}
                    },
                     childCount:5,
                  ),
            ),
          ),