我如何查找 Firebase 数据库节点是否没有子节点?似乎唯一获取数据的方式是使用监听器,它们只在添加或删除时触发。换句话说,如果没有子节点,则不会触发任何内容。
addValueEventListener
方法,在 onDataChange
中,你需要检查是否存在子节点。根据这份文档,addValueEventListener
方法会在监听器被附加时触发一次,并且每当数据(包括子节点)发生变化时都会再次触发。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) {
}
});
DataSnapshot
的 getChildrenCount()
或 exists()
方法来检查 Firebase
中是否存在 child
。 searchFirebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("FIREBASE",String.valueOf(dataSnapshot.getChildrenCount()));
String childrenCount = String.valueOf(datasnapshot.getChildrenCount());
if(childrenCount != null){
}else{
//No childrens in Firebase Database
}
//OR
if(!dataSnapshot.exists()){
//No data
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
请查看此文档以获取更多信息。希望这能帮到您。