Flutter 即使Firestore有数据,Flatter Firestore getter文档也为空
我正在尝试一个flutter应用程序,在这个应用程序中,我需要从一个名为“来自Firestore的新闻”的集合中读取所有文档,并将其放入列表生成器中Flutter 即使Firestore有数据,Flatter Firestore getter文档也为空,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我正在尝试一个flutter应用程序,在这个应用程序中,我需要从一个名为“来自Firestore的新闻”的集合中读取所有文档,并将其放入列表生成器中 class _CategoriesState extends State<Categories> { Future<QuerySnapshot> getcat() { return fb.collection("News").get(); } @override Widget
class _CategoriesState extends State<Categories> {
Future<QuerySnapshot> getcat() {
return fb.collection("News").get();
}
@override
Widget build(BuildContext context) {
return Scaffold(
//appBar: Myappbar(),
//drawer: navigationDrawer(),
body: Container(
padding: EdgeInsets.all(10.0),
child: FutureBuilder(
future: getcat(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
physics: BouncingScrollPhysics(),
shrinkWrap: true,
itemCount: snapshot.data.docs.length,
itemBuilder: (BuildContext context, int index) {
return Card(
child: ExpansionTile(
title: Text(snapshot.data.docs[index].data()["Title"]),
),
);
});
} else if (snapshot.connectionState == ConnectionState.none) {
return Text("No data");
}
return CircularProgressIndicator();
},
),
),
);
}
}
class\u分类状态扩展状态{
未来的getcat(){
返回fb.collection(“News”).get();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
//appBar:Myappbar(),
//抽屉:导航抽屉(),
主体:容器(
填充:所有边缘设置(10.0),
孩子:未来建设者(
future:getcat(),
生成器:(上下文,异步快照){
if(snapshot.connectionState==connectionState.done){
返回ListView.builder(
滚动方向:轴垂直,
物理:弹跳CrollPhysics(),
收缩膜:对,
itemCount:snapshot.data.docs.length,
itemBuilder:(构建上下文,int索引){
回程卡(
子文件:扩展文件(
标题:文本(snapshot.data.docs[index].data()[“title”]),
),
);
});
}else if(snapshot.connectionState==connectionState.none){
返回文本(“无数据”);
}
返回循环ProgressIndicator();
},
),
),
);
}
}
这是我正在使用的代码
我的火炉店
我犯了一个错误
生成FutureBuilder时抛出以下NoSuchMethodError(脏,状态:_FutureBuilderState#25db8):
对null调用了getter“docs”。
收件人:空
试着打电话给医生
导致错误的相关小部件是:
未来建设者file:///Users/raviteja/Documents/IND/bubbleburst/lib/main.dart:171:16
引发异常时,这是堆栈:
#0 Object.noSuchMethod(省道:核心补片/对象补片。省道:54:5)
#1_CategoriesState.build。(包装:bubbleburst/main.省道:179:44)
#2_FutureBuilderState.build(包:flatter/src/widgets/async.dart:773:55)
#3 StatefulElement.build(包:flatter/src/widgets/framework.dart:4612:27)
#4 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4495:15)更改
if (snapshot.connectionState == ConnectionState.done)
致:
这将在查询完成但没有数据时防止错误,如您的情况
如果您编写的是“news”而不是“news”,或者您的getcat()
实际上正在返回数据,那么您还必须检查查询的拼写
if (snapshot.connectionState == ConnectionState.done && snapshot.hasData)