获取Firebase中的元素数量

时间:2018-01-23 17:39:11

标签: java android firebase firebase-realtime-database

我想获取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) {

    }
});

1 个答案:

答案 0 :(得分:1)

您目前正在计算每个孩子的属性数量,因此得出3:msgnametime

要计算孩子的数量,您需要使用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
    }
});