Firebase数据库:检查节点是否没有孩子?

如何找出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) { } }); 

您可以使用DataSnapshotgetChildrenCount()exists()方法检查是否存在于Firebase

  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) { } }); 

有关更多信息,请参阅此文档 。 我希望这可以帮助你。