How do I find out if a Firebase DB node has no children? Seems the only way to get data is with listeners, and they only fire when something is added or removed. In other words, if there are no children, nothing will fire.
public String getKey () Returns. The key name for the source location of this snapshot or null if this snapshot points to the database root.
The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in realtime.
You can use addValueEventListener
, and in onDataChange
you will have some way to check no children.
The addValueEventListener
will work because arcoding this docs
This method is triggered once when the listener is attached and again every time the data, including children, changes
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) {
}
});
You can check whether the child
is present in Firebase
or not by using the getChildrenCount()
or exists()
method of DataSnapshot
.
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) {
}
});
See this doc for more info. I hope this helps you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With