如何在子级中获取dataSnapshot.getChildrenCount()

时间:2019-03-27 19:45:17

标签: java android firebase firebase-realtime-database

我正在尝试总结具有不同孩子的孩子中的id总数。 我想从这些孩子那里得到值(getChildrenCount)。

这是数据库:

Database

我尝试过这个

//value for the jumlah pos
databaseReference.child("umumPos").child(model.getForumUid()).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                long size = dataSnapshot1.getChildrenCount();
                holder.getTextViewPostThreadsCount().setText("Jumlah Pos: " + size);

            }

        }
    }
    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
 });

1 个答案:

答案 0 :(得分:2)

在您的代码中,当您循环执行时,size等于1,这是因为在第二个id下,您只有一个孩子。尝试以下操作添加所有子代:

 long sum = 0;
 for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
 long size = dataSnapshot1.getChildrenCount();
 sum += size;
 holder.getTextViewPostThreadsCount().setText("Jumlah Pos: " + size);

        }