Flutter/Firebase,从集合中的每个文档中获取特定字段

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

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

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.