如果使用ChildEventListener,如何检查现有快照?

时间:2018-03-19 16:47:51

标签: android firebase

在firebase中,我尝试使用ChildEventListener。但在某些情况下,我正在寻找的快照不存在。如果没有快照,则不会调用子事件侦听器的方法。我发现要检查现有的快照,我需要使用ValueEventListener。但是使用ValueEventListener进行检查以及使用ChildEventListener后不方便。那么,有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

您只能将if(dataSnapshot.exists()与ValueEventListener或SingleValueEvent一起使用,它不能与ChildEventListener一起使用。

但是如果您想使用ChildEventListener,请将其嵌套在ValueEventListener

示例:

 mRootRef.child("user").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
       if(dataSnapshot.exists()){

         //add childeventlistener here

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});