我如何获得具有相同价值的孩子数量?

时间:2018-11-18 05:36:55

标签: android firebase firebase-realtime-database

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

让我们说我想知道类别C中有多少项,我将如何使用值事件侦听器继续进行下去。

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

1 个答案:

答案 0 :(得分:1)

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

然后您可以做的是,使用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());
            }


        });