如何确定Firebase数据库节点是否没有子节点?似乎获取数据的唯一方法是使用侦听器,并且只有在添加或删除某些内容时才会触发。换句话说,如果没有孩子,就什么都不会发生。
答案 0 :(得分:4)
您可以使用addValueEventListener
,在onDataChange
中,您可以通过某种方式检查没有孩子。
addValueEventListener
将起作用,因为对此docs进行了编码
此方法在连接侦听器时再次触发 每次包括儿童在内的数据都会发生变化
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
// As cricket_007 we also can use hasChildren or getChildrenCount
if(!snapshot.hasChildren()){
// db has no children
}
// OR this way
if(snapshot.getChildrenCount() == 0){
// db has no children
}
// OR this way
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
// db has no children
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
答案 1 :(得分:2)
您可以使用child
的{{1}}或Firebase
方法检查getChildrenCount()
中是否存在exists()
。
DataSnapshot
有关详细信息,请参阅此doc。我希望这会对你有所帮助。