我想获取Firebase Realtime DB中的元素数量。
我可以获得孩子数量但不能获得元素数量。
例如:
https://i.hizliresim.com/Lb46ao.png
当你看到孩子3的数量时,我的代码返回3但我想要计算所有元素而不是孩子。
root.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
totalSize = (int) dataSnapshot.getChildrenCount(); //It gives 3,
//not number of elements. I want to obtain number of elements. Number of elements 1204 for now.
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:1)
您目前正在计算每个孩子的属性数量,因此得出3:msg
,name
,time
。
要计算孩子的数量,您需要使用ValueEventListener
:
root.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
totalSize = (int) dataSnapshot.getChildrenCount();
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException(); // don't ignore errors
}
});