【发布时间】:2020-12-05 17:53:33
【问题描述】:
DatabaseService databaseService = new DatabaseService();
Stream questionsSnapshot;
所以我使用流和数据库服务将数据(测验的问题和答案)检索到我的 listView 构建器 数据库服务调用的函数是
getAquizData(String quizId) async{
return await Firestore.instance
.collection("quiz")
.document(quizId)
.collection("questionReponses")
.snapshots();
}
初始化状态函数
@override
void initState() {
databaseService.getAquizData(widget.quizId).then((value){
questionsSnapshot = value;
setState(() {});
});
super.initState();
}
我的 listViewBuilder
@override
Widget build(BuildContext context) {
return Scaffold(
// an appbar
) ,
body: Container(
child: Column(children: <Widget>[
StreamBuilder(
stream: questionsSnapshot,
builder: (context, snapshot) {
return snapshot.data == null
? Container(child: Text("empty"),) : ListView.builder(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
itemCount: snapshot.data.documents.length,
itemBuilder: (context,index){
return QuizPlayTile(
questionModel: getQuestionModelFromDatasnapshot(
snapshot.data.documents[index]),
index: index,
);
});
},
)
],)
)
);
}
}
运行时只显示空字一秒钟,然后显示没有答案的问题
[1]: https://i.stack.imgur.com/E4CS4.jpg
【问题讨论】:
标签: flutter listview google-cloud-firestore stream