java - 获取 Firebase 中的元素数量

标签 java android firebase firebase-realtime-database

我想获取 Firebase 实时数据库中的元素数量。

我可以获得子元素的数量,但不能获得元素的数量。

例如:

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) {

    }
});

最佳答案

您目前正在计算每个子项下的属性数量,因此得出 3:msg , name , time .

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

关于java - 获取 Firebase 中的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407742/

相关文章:

java - 在java中X时间后调用方法

java - 使用 AJAX 作为网站前端的危险

java - 无法将 Excel 文件中的日期值放入 Web 申请表中

android - 从 Android 通知栏启动应用程序。如何启动一个新的应用程序实例而不是恢复后台进程?

arrays - 如何获取三个包含三个或更少对象的数组?

ios - 让 AuthListener 等待,直到 for 循环完成

java - RowFilter.regexFilter 多列

android - 单击按钮 setMyLocationEnabled 后如何直接在 GoogleMap 上添加标记?

java - 如何针对不同版本的客户端代码进行自动化测试

android - 如何退出 firebase