使用DataReference
时,是否可以检查Firebase observeChildEvent
上是否存在子数据?我使用onChildEventListener
填写了我的应用中的RecyclerView
,但在数据更改期间,我显示了ProgressBar
。如果当前查询中没有数据,则会出现问题,因此我从未收到任何事件,但我无法隐藏进度条。
有没有办法实现这一目标,如果没有启动前一个observeSingleValueEvent
limit(1)
值,可以检查dataSnapshot
是否有可用数据?
答案 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);
}