我想获取一堆满足简单过滤器的对象,但我的ValueEventListener甚至不会被调用一次。
我的对象是这样的:
trips/
some-id-1/{creator="abc", other_field...}
some-id-2/{creator="def" ...}
...
在一个活动的onResume方法中,应用程序显示一个进度对话框并获取一些对象,然后在获取对象时隐藏进度对话框
在onResume中,我这样做:
Query query = mDatabaseReference.child("trips")
.orderByChild("creator")
.equalTo("xxx");
Log.d(TAG, "before fetch");
fetch(query);
Log.d(TAG, "after fetch");
fetch具有以下实现:
fetch(Query query) {
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i("data changed...")
// hide the progress dialog...
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("cancelled...")
// hide the progress dialog...
}
};
query.addListenerForSingleValueEvent(valueEventListener);
}
"在获取"之前和#34;取得"记录,没有"数据已更改"或"取消......"记录,因此不会触发ValueEventListener。我从不打电话给goOffline方法,我的手机肯定有网络。在我的情况下,ValueEventListener没有触发的任何原因?