代码之家  ›  专栏  ›  技术社区  ›  Kirit Modi

获取子值firebase中的所有总值?

  •  0
  • Kirit Modi  · 技术社区  · 5 年前

    我已经在FireBase上创建了学校数据库,我想对同一个学校的所有相同密钥进行求和。像学校1有科目键,科目内有学生:姓名1、姓名2等,每个学生都有相同的科目“AAA”、“BBB”、“CCC”,现在我想把科目“AAA”加起来,你能帮我把值“AAA”加起来吗?

    {
        "School1": {
            "Subject": {
                "Name1": {
                    "AAA": 50,
                    "BBB": 60,
                    "CCC": 70,
                    "DDD": 80
                },
                "Name2": {
                    "AAA": 50,
                    "BBB": 60,
                    "CCC": 70,
                    "DDD": 80
                },
                "Name3": {
                    "AAA": 50,
                    "BBB": 60,
                    "CCC": 70,
                    "DDD": 80
                }
            }
        },
        "School2": {
            "Subject": {
                "Name1": {
                    "AAA": 50,
                    "BBB": 60,
                    "CCC": 70,
                    "DDD": 80
                }
            }
        }
    }
    

    AAA输出结果:

    学校一: AAA:150

    Image

    0 回复  |  直到 5 年前
        1
  •  1
  •   Martin Mbae    5 年前

    这是怎么做的。

    databasereference aaa=firebasedatabase.getinstance().getreference().child(“school1”).child(“subject”);

        aaa.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    
                int sum = 0;
                for (DataSnapshot child : dataSnapshot.getChildren()) {
                    sum = (int) child.child("AAA").getValue()   + sum;
                }
    
                Toast.makeText(MainActivity.this, "Total Sum is "+ sum, Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
    
            }
        });