Database FutureBuilder和ListView.builder

Database FutureBuilder和ListView.builder,database,firebase,flutter,dart,google-cloud-firestore,Database,Firebase,Flutter,Dart,Google Cloud Firestore,有人能给我解释一下如何使用FutureBuilder中的ListView.Builder中的itemCount吗 目前,我的FirebaseCloud商店只有一个文档,而我的应用程序正在返回无限多个文档列表 我尝试使用itemCount:snapshot.data.documents.length, 但是,获取错误:类“DocumentSnapshot”没有实例获取程序“documents”。接收者:“DocumentSnapshot”的实例尝试调用:documents 编辑如果有多个文档与UI

有人能给我解释一下如何使用FutureBuilder中的ListView.Builder中的itemCount吗

目前,我的FirebaseCloud商店只有一个文档,而我的应用程序正在返回无限多个文档列表

我尝试使用
itemCount:snapshot.data.documents.length,


但是,获取错误:
类“DocumentSnapshot”没有实例获取程序“documents”。接收者:“DocumentSnapshot”的实例尝试调用:documents

编辑如果有多个文档与UID相关,则只应显示此文档一次,并显示一种文档

这是我的密码

final tabs = [
        Center(

            child: (Scaffold(
                body: FutureBuilder(
                    future: FirebaseFirestore.instance
                        .collection('users')
                        .doc(uid)
                        .get(),
                    builder: (context, AsyncSnapshot snapshot) {
                      if (snapshot.data == null)
                        return CircularProgressIndicator();
                      DocumentSnapshot manuais = snapshot.data;

                      if (snapshot.hasData) {
                        print('okkk');
                        print(manuais.data()['nome']);
                      } else {
                        print('nopeeeee');
                      }
                      return Container(
                        padding: EdgeInsets.all(16),
                        child: ListView.builder(

                            itemCount: snapshot.data.documents.length,

                            itemBuilder: (context, index) {


                              DocumentSnapshot manuais = snapshot.data;

                              return Card(
                                color: Colors.grey[250],
                                child: Container(
                                  padding: EdgeInsets.all(10),
                                  child: Column(
                                    crossAxisAlignment:
                                        CrossAxisAlignment.start,
                                    children: <Widget>[
                                      new Image.asset(
                                        'Images/pdflogo.png',
                                        width: 32,
                                      ),
                                      Center(
                                        child: Text(
                                          (manuais.data()['nome'].toString()),
                                          maxLines: 1,
                                          overflow: TextOverflow.ellipsis,
                                          style: TextStyle(fontSize: 16),
                                        ),
                                      ),
                                      ButtonBar(
                                        children: <Widget>[
                                          FlatButton(
                                              child: const Text(
                                                  'Compartilhar / Download'),
                                              onPressed: () async {
                                                var request = await HttpClient()
                                                    .getUrl(Uri.parse(manuais
                                                        .data()['documento']));
                                                var response =
                                                    await request.close();
                                                Uint8List bytes =
                                                    await consolidateHttpClientResponseBytes(
                                                        response);
                                                await Share.file(
                                                    'ESYS AMLOG',
                                                    'Manual.pdf',
                                                    bytes,
                                                    'image/jpg');
                                              }),
                                        ],
                                      ),
                                    ],
                                  ),
                                ),
                              );
                            }),
                      );
                    })))),

````
最终选项卡=[
居中(
儿童:(脚手架)(
正文:未来建设者(
未来:FirebaseFirestore.instance
.collection('用户')
.doc(uid)
.get(),
生成器:(上下文,异步快照){
如果(snapshot.data==null)
返回循环ProgressIndicator();
DocumentSnapshot Manualis=snapshot.data;
if(snapshot.hasData){
印刷品(‘okkk’);
打印(manualis.data()['nome']);
}否则{
印刷品('nopeeee');
}
返回容器(
填充:边缘设置。全部(16),
子项:ListView.builder(
itemCount:snapshot.data.documents.length,
itemBuilder:(上下文,索引){
DocumentSnapshot Manualis=snapshot.data;
回程卡(
颜色:颜色。灰色[250],
子:容器(
填充:边缘设置。全部(10),
子:列(
横轴对齐:
CrossAxisAlignment.start,
儿童:[
新形象资产(
“Images/pdflogo.png”,
宽度:32,
),
居中(
子:文本(
(manualis.data()['nome'].toString()),
maxLines:1,
溢出:TextOverflow.省略号,
样式:TextStyle(字体大小:16),
),
),
钮扣杆(
儿童:[
扁平按钮(
子:常量文本(
“Compartilhar/下载”),
onPressed:()异步{
var request=wait HttpClient()
.getUrl(Uri.parse(manualis
.data()['documento']);
var响应=
等待请求。关闭();
UINT8列表字节=
等待合并HttpClientResponseBytes(
反应);
等待Share.file(
“ESYS AMLOG”,
“Manual.pdf”,
字节,
"image/jpg";;
}),
],
),
],
),
),
);
}),
);
})))),
````

您需要这样获得长度

itemCount: snapshot.data.data().length,

你需要得到这样的长度

itemCount: snapshot.data.data().length,
if(snapshot.hasData){
印刷品(‘okkk’);
打印(manualis.data()['nome']);
返回容器(
填充:边缘设置。全部(16),
子项:ListView.builder(
itemCount:snapshot.data.documents.length,
itemBuilder:(上下文,索引){
DocumentSnapshot Manualis=snapshot.data;
回程卡(
颜色:颜色。灰色[250],
子:容器(
填充:边缘设置。全部(10),
子:列(
横轴对齐:
CrossAxisAlignment.start,
儿童:[
新形象资产(
“Images/pdflogo.png”,
宽度:32,
),
居中(
子:文本(
(manualis.data()['nome'].toString()),
maxLines:1,
itemCount : 1
FirebaseFirestore.instance
                        .collection('users')
                        .doc(uid)
                        .get()