【问题标题】:How To get The Total of values in Flutter firestore?如何获取 Flutter Firestore 中的总价值?
【发布时间】:2021-06-28 14:06:30
【问题描述】:

我有一个 Firestore 集合“购物车”,其中包含一个产品列表,每个产品都有一个价格,所以我想获取所有产品并计算价格总和:FireStore Collection

我尝试了一些代码,这个代码正在运行,但是我如何在屏幕上显示总和

      Future getTotal() async {
    int sum = 0;
    FirebaseFirestore.instance.collection('Users/$userid/Cart').get().then(
      (querySnapshot) {
        querySnapshot.docs.forEach((result) {
          for (var i = 1; i < result.data()['price'].toString().length; i++) {
            sum = sum + result.data()['price'];
          }
        });
        print('total : $sum');
      },
    );
    }

更新:我试过这是有效的,但是当我从购物车中删除产品时,值没有改变,除非我关闭屏幕然后再次返回,

      double sum = 0;
       double total = 0;
      final String userid = FirebaseAuth.instance.currentUser.uid;

     @override
     void initState() {
       FirebaseFirestore.instance.collection('Users/$userid/Cart').get().then(
        (querySnapshot) {
          querySnapshot.docs.forEach((result) {
          sum = sum + result.data()['price'];
          });
        setState(() {
          total = sum;
          });
        },
       );
      super.initState();
     }

任何帮助将不胜感激。

【问题讨论】:

  • 只需创建一个实例变量,指定您的sumvariable = sum,然后在您的小部件中使用它,例如Text('$variable')
  • 问题标题和正文不匹配!
  • 根据正文改标题就好了
  • 最好在 state 中设置总值,然后你就可以得到总的 frim 文本小部件
  • 请问我该怎么做?

标签: firebase flutter google-cloud-firestore


【解决方案1】:

这对我有用:

 final cartitems = snapshot.data;
            final List<CartModel> products = cartitems;
            double getPrice() {
              double price = 0;
              cartitems.forEach((x) {
                price += x.price * x.numofitem;
              });
              return price;
            }

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 2020-07-30
    • 1970-01-01
    • 2021-07-22
    • 2021-06-17
    • 2022-10-24
    • 2018-12-06
    • 2021-02-12
    • 2020-06-01
    相关资源
    最近更新 更多