首页 > 解决方案 > 如何获得具有相同价值的孩子的数量?

问题描述

如何获得具有相同类别值的子项(例如“1234”和“fdsasda”)数量。

假设我想知道 C 类中有多少项目,我将如何使用 value 事件侦听器来解决这个问题。

 // removed unimportant things
  "1234" : {
    "category" : "C",
  },
  "fdsasda" : {
    "category" : "B",
  },

标签: androidfirebasefirebase-realtime-database

解决方案


为此,首先您必须确保根节点和您在结构中显示的这些子节点之间没有父节点。

然后你可以做的是,使用orderByChild()与孩子一起订购你的数据库,category并使用equalTo()它与你想要的值进行比较并计算出现次数。

我在说什么,在代码中看起来像这样:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

Query query = rootRef.orderByChild("category").equalTo("C");

query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                long count = dataSnapshot.getChildrenCount();
                Log.d("TAG", count + "");

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.d(TAG, "onCancelled", databaseError.toException());
            }


        });

推荐阅读