从集合中的每个文档中获取特定字段

问题描述 投票:0回答:1

我正在使用 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();
    }

flutter firebase google-cloud-firestore
1个回答
0
投票
QuerySnapshot<Map<String, dynamic>> querySnapshot =
await FirebaseFirestore.instance.collection('order').get();

querySnapshot.docs.forEach((doc) {
 total += double.tryParse(doc['price']??"0")??0;
});

你可以尝试这个代码片段

© www.soinside.com 2019 - 2024. All rights reserved.