我正在使用 Dart Flutter 和 Firebase Firestore。 我有一个集合 'order' ,其中包含包含 'name' 和 'price' 的自动 ID 文档。 我想将 '双重总计' 设置为集合“订单”中每个价格的总和。
我已经设置了查询快照、forEach 函数和
docs.get()
方法。
我尝试设置为地图,并咨询了chatGPT。总计不会更新或获取每个文档的价格。
我使用 initState() { calculateTotal(); }
来调用该函数。
double total = 0;
Future<void> calculateTotal() async {
total = 0;
QuerySnapshot querySnapshot =
await FirebaseFirestore.instance.collection('order').get();
querySnapshot.docs.forEach((doc) {
total += doc.get('price');
});
}
@override
Widget build(BuildContext context) {
initState() {
calculateTotal();
}
QuerySnapshot<Map<String, dynamic>> querySnapshot =
await FirebaseFirestore.instance.collection('order').get();
querySnapshot.docs.forEach((doc) {
total += double.tryParse(doc['price']??"0")??0;
});
你可以尝试这个代码片段