是否有一种方法可以在flutter应用程序中使用firebase查找具有相同子名称的子项的总和?

是否有一种方法可以在flutter应用程序中使用firebase查找具有相同子名称的子项的总和?,firebase,flutter,authentication,firebase-realtime-database,storage,Firebase,Flutter,Authentication,Firebase Realtime Database,Storage,我很难计算一组同名儿童的总和。我是这样做的,但不起作用。请帮忙 driverRef.orderByChild("earnings") .once() .then((DataSnapshot dataSnapShot) { print("PPPP" + dataSnapShot.value.toString()); if (dataSnapShot.value != nu

我很难计算一组同名儿童的总和。我是这样做的,但不起作用。请帮忙

driverRef.orderByChild("earnings")
            .once()
            .then((DataSnapshot dataSnapShot) {
          print("PPPP" + dataSnapShot.value.toString());
          if (dataSnapShot.value != null) {
            print("kkkk" + j.values.toList()[i]["fare"].toString());

           sum = double.parse(j.values.toList()[i]["fare"].toString())+sum;
            print("JJJJJ" + sum.toString());
            // double oldEarnings = double.parse(
            //     j.values.toList()[i]["fare"].toString());
            // double oldEarnings=sum;
            double totalEarnings = fareAmount + sum;

            driverRef.child(currentFirebaseUser.uid)
                .child("earnings")
                .set(
                totalEarnings.toStringAsFixed(2));
          } else {
            double totalEarnings = fareAmount.toDouble();
            driverRef.child(currentFirebaseUser.uid).child("earnings").set(
                totalEarnings.toStringAsFixed(2));
          }
Finish reference有票价,我想找到所有票价儿童的总票价

`

无效储蓄收入(整数金额) { FinishRequestRef.orderByChild(“驱动程序详细信息”).once().then((DataSnapshot快照){

if(snapshot.value!=null){
Mapj=snapshot.value;

对于(var i=0;我在那里很好。这里有什么
i
j
。你需要发布你的数据样本,并解释你试图从中检索到什么。你能分享一些关于你的数据库结构的信息吗。也许来自firebase云函数的自动计数器对你来说是一个更好的解决方案。它会为你节省大量的阅读,因为你可以只得到完成的文件,而不需要得到整个元素列表并在本地读取它们。
  if(snapshot.value!=null){
    Map<dynamic,dynamic>j=snapshot.value;
    for (var i = 0; i <j.length; i++)
      if (j.values.toList()[i]["Driver Details"]["drivers_id"] ==
          currentFirebaseUser.uid) {
        // driverRef.child(currentFirebaseUser.uid).child("earnings")
        //     .once()
        //     .then((DataSnapshot dataSnapShot) {
        //             print("PPPP"+dataSnapShot.value.toString());
        //   if (dataSnapShot.value == null) {
        //     print("pppp");
        //
        //     double totalEarnings = fareAmount.toDouble();
        //     driverRef.child(currentFirebaseUser.uid).child("earnings").set(
        //         totalEarnings.toStringAsFixed(2));}
        // });
        driverRef.orderByChild("earnings")
            .once()
            .then((DataSnapshot dataSnapShot) {
          print("PPPP" + dataSnapShot.value.toString());
          if (dataSnapShot.value != null) {
            print("kkkk" + j.values.toList()[i]["fare"].toString());
            //var dos= dataSnapShot.value.toString();
            double sum=0.0;
           sum += double.parse(j.values.toList()[i]["fare"].toString());
            print("JJJJJ" + sum.toString());
            // double oldEarnings = double.parse(
            //     j.values.toList()[i]["fare"].toString());
            // double oldEarnings=sum;
            double totalEarnings = fareAmount + sum;

            driverRef.child(currentFirebaseUser.uid)
                .child("earnings")
                .set(
                totalEarnings.toStringAsFixed(2));
          } else {
            double totalEarnings = fareAmount.toDouble();
            driverRef.child(currentFirebaseUser.uid).child("earnings").set(
                totalEarnings.toStringAsFixed(2));
          }
        });
      }
     }});}`[enter image description here][1] All the finish references fare amounts must be added to drivers earnings child added with cur