当我尝试在listview.buider中使用snapshot.data.docs.length时,我遇到了此错误:getter"docs"没有为类型定义'Object'



我正试图从firebase中获取数据,以在listview生成器中列出所有文档-就显示代码中的数据库文件而言,代码仍未完成。这是错误:getter"docs"没有为类型"Object"定义

Container(
child: StreamBuilder<Object>(
stream: _firestore
.collection('Patient')
.doc(_auth.currentUser.email)
.collection("Diabetes")
.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
reverse: true,
shrinkWrap: true,
itemCount:
snapshot.data.docs.length, // here is the error "docs"
itemBuilder: (context, index) {
DocumentSnapshot documentSnapshot =
snapshot.data.docs[index]; // also another error "docs"
return Container();
});
}
return Center(
child: CircularProgressIndicator(),
);
}),
)

您应该将snapshot.data.docs.length替换为snapshot.ddata.length

Container(
child: StreamBuilder<Object>(
stream: _firestore
.collection('Patient')
.doc(_auth.currentUser.email)
.collection("Diabetes")
.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
reverse: true,
shrinkWrap: true,
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
DocumentSnapshot documentSnapshot = snapshot.data[index];
return Container();
});
}
return Center(
child: CircularProgressIndicator(),
);
}),
)

我通过用StreamBuilder<QuerySnapshot>替换StreamBuilder<Object>来解决问题。默认情况下,StreamBuilder以StreamBuilder<Object>的形式出现

相关内容

最新更新