android - 如何获得具有相同价值的孩子的数量?
问题描述
如何获得具有相同类别值的子项(例如“1234”和“fdsasda”)数量。
假设我想知道 C 类中有多少项目,我将如何使用 value 事件侦听器来解决这个问题。
// removed unimportant things
"1234" : {
"category" : "C",
},
"fdsasda" : {
"category" : "B",
},
解决方案
为此,首先您必须确保根节点和您在结构中显示的这些子节点之间没有父节点。
然后你可以做的是,使用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());
}
});
推荐阅读
- c++ - 使用 C++ 模板指定协变/逆变行为
- ios - 通过位置确定精灵的名称
- javascript - 如何在 Leafletjs 中创建模式弹出窗口?
- python - Python Pandas Datetime 每天循环
- mysql - 如何更正 MySql 表中递增值的重置
- ios - 如何在 iPhone 中使用弹出框控制器
- c - Linux 内核库
- prolog - Prolog 成员 + 谓词调用解释
- javascript - 在 Zotero(即 Firefox XPCOM/XUL)扩展中附加 SQLITE 数据库
- postgis - 在 Amazon Linux 上安装 PostGIS