我正在使用 Dart Flutter 和 Firebase Firestore。 我有一个集合
order
,其中包含自动 ID 文档,其中包含 name
和 price
。
我想将 double total
设置为集合“订单”中每个价格的总和。
我设置了查询快照、
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;
});
你可以尝试这个代码片段