java dataSnapshot无法获取父推送键值
我希望dataSnapshot检查其父项的“摘要”中是否存在“月”。但dataSnapshot返回的结果是“摘要”中没有“月份”
ds = FirebaseDatabase.getInstance().getReference("summary");
ds.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//summary
String key = ds.getKey();
if (dataSnapshot.hasChild("month")) {
Toast.makeText(newTransaction.this, "got value", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(newTransaction.this, "No value", Toast.LENGTH_LONG).show();
}
}
我的Firebase数据库:我想检查来自其父数据库(红线)的值(蓝线)
# 1 楼答案
以下代码行:
返回引用所指向的节点的键,在本例中为
summary
。在summary
节点和month
属性之间,在您的结构中还有另一个级别,实际上是被按下的键(-MJKC…xGZX)。为了检查该属性是否存在,还需要在引用中使用该键。假设summary
节点是Firebase数据库根目录的直接节点,请使用以下代码行:但是,如果尚未将该键存储到变量中,则应使用查询,如下所示: