Это логическая ошибка, я получаю 7дети считают под stocks, но выводит только четыре дети считают
OUTPUT: "4 Rubber Duck"
Я использую textView.setText(allDuck " Rubber Duck"); и Вывод не весь Rubber Duck. Суммарный выход 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"
.
ref
.child("DuckCompany")
.child("SALES")
.child("WireHouse")
.child("Inventory")
.child("RubberDUCK")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot uids : dataSnapshot.child("DuckID").getChildren()) {
uidKeys = uids.getKey();
if (uidKeys != null) {
int allDuck = (int) dataSnapshot.child("DuckID").child(uidKeys).child("stocks").getChildrenCount();
}
}
textView.setText(allDuck " Rubber Duck");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});




Вы перебираете все (2) ключа в DuckID и получаете количество дочерних элементов в 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");
}
Я попробую ваш код и вернусь снова. спасибо за ответ :-)