使用onChildEventListener时检查数据是否存在

时间:2017-01-13 18:33:51

标签: android firebase firebase-realtime-database

使用DataReference时,是否可以检查Firebase observeChildEvent上是否存在子数据?我使用onChildEventListener填写了我的应用中的RecyclerView,但在数据更改期间,我显示了ProgressBar。如果当前查询中没有数据,则会出现问题,因此我从未收到任何事件,但我无法隐藏进度条。

有没有办法实现这一目标,如果没有启动前一个observeSingleValueEvent limit(1)值,可以检查dataSnapshot是否有可用数据?

1 个答案:

答案 0 :(得分:0)

我使用RxFirebase2与Firebase合作,所以我做了一个方法来检查DatabaseReference是否有孩子,与RxJava一起使用以避免使用OnChildEvents时我的参考没有孩子:

  public Single<Boolean> checkIfRefHaveAvailableChild(DatabaseReference databaseReference){
      final Query query = databaseReference.limitToFirst(MIN_RETRIEVE_DATA);
      return RxFirebaseDatabase.observeSingleValueEvent(query)
         .subscribeOn(Schedulers.io())
         .take(1)
         .map(dataSnapshot -> dataSnapshot.hasChildren())
         .single(false);
   }