Java 无法检索子项下的所有计数

Java 无法检索子项下的所有计数,java,firebase-realtime-database,Java,Firebase Realtime Database,这是一个逻辑错误,我正在stocks下检索7子计数,但输出只有四个子计数 输出:“4只橡皮鸭” 我使用textView.setText(allDuck“橡皮鸭”)和输出不都是橡皮鸭。它应该总共7输出,而不是四个。这是有问题的数据结构和代码,但我不知道问题出在哪里,你能帮我找到逻辑错误吗:我想,firebase读取我的uid时会出现混淆 Database DuckCompany SALES WireHouse Inventory

这是一个逻辑错误,我正在
stocks
下检索
7
子计数,但输出只有四个子计数

输出:“4只橡皮鸭”

我使用
textView.setText(allDuck“橡皮鸭”)和输出不都是橡皮鸭。它应该总共
7
输出,而不是四个。这是有问题的数据结构和代码,但我不知道问题出在哪里,你能帮我找到逻辑错误吗:我想,firebase读取我的uid时会出现混淆

Database
    DuckCompany
       SALES
          WireHouse
             Inventory
                  RubberDUCK
                     DuckID
                        axRGznal3nkhxsDax // this is uid
                                stocks
                                   -LEeeeeeeeeeeeeeeee  // this is id 
                                                redValue:"71"
                                   -LFffffffffffffffff 
                                                redValue:"71"
                                   -LGggggggggggggggg 
                                                redValue:"71"
                        cpsGGGGNxQQQOWqh
                                stocks 
                                   -LAaaaaaaaaaaaaaa 
                                                redValue:"71"
                                   -LBbbbbbbbbbbbbbb 
                                                redValue:"71"
                                   -LCccccccccccccc 
                                                redValue:"71"
                                   -LDddddddddddddd
                                                redValue:"71"

您在
DuckID
下循环所有(2)个键,并在
stock
下为每个键获取子项的数量,但您没有在任何地方添加这些数量,您只是覆盖了以前的值

请尝试以下方法:

    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        int allDuck = 0;

        for (DataSnapshot uids : dataSnapshot.child("DuckID").getChildren()) {

            String uidKeys = uids.getKey();

            if (uidKeys != null) {
                allDuck += (int) dataSnapshot.child("DuckID").child(uidKeys).child("stocks").getChildrenCount();                            
            }
        }
        textView.setText(allDuck " Rubber Duck");
    }

我会试试你的代码,然后再回来。感谢您的回复:-)
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        int allDuck = 0;

        for (DataSnapshot uids : dataSnapshot.child("DuckID").getChildren()) {

            String uidKeys = uids.getKey();

            if (uidKeys != null) {
                allDuck += (int) dataSnapshot.child("DuckID").child(uidKeys).child("stocks").getChildrenCount();                            
            }
        }
        textView.setText(allDuck " Rubber Duck");
    }