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");
}