【发布时间】:2021-11-22 21:33:00
【问题描述】:
我正在尝试使用 FutureBuilder 通过 ListView.builder 构建一些 LisTiles。数据来自 Firestore。 看起来 FutureBuilder 没有访问 ConnectionState.done,因为我一直在显示 CircularProgressIndicator()。
var qn;
Future<QuerySnapshot> getChargingHistory() async {
await users
.doc('$currentUser')
.collection('chargingHistory')
.get()
.then((QuerySnapshot querySnapshot) {
qn = querySnapshot;
qn.docs.forEach((doc) {
print(doc['Endzeit']);
});
});
setState(() {
});
return qn;
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Hero(
tag: 'logo',
child: Image.asset(
'assets/images/rz_bildmarke_meyer-technik_rgb.png',
height: MediaQuery.of(context).size.height * 0.05,
fit: BoxFit.cover,
),
),
actions: [],
centerTitle: true,
elevation: 4,
),
body: BackgroundContainer(
child: Column(
children: [
Expanded(
child: FutureBuilder(
future: getChargingHistory(),
builder: (context, querySnapshot) {
if (querySnapshot.connectionState ==
ConnectionState.done) {
return ListView.builder(
itemCount: qn.docs.length,
itemBuilder: (BuildContext context, index) {
return ListTile(
title: Text('${qn.docs.data['Endzeit'].toString()}'));
//Text(doc['Endzeit']);
}
);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
}),
),
【问题讨论】:
-
您是否从打印功能获得请求响应?
-
@Jahidul Islam 是的,当我使用这个时:
qn.docs.forEach((doc) { print(doc['Endzeit']); });我得到了我想要的东西,但我无法通过 ListView.builder 得到它
标签: firebase flutter flutter-futurebuilder