我正在尝试从Firebase读取(离线),但从未调用onDataChange方法,
private class MyAuthStateListener implements Firebase.AuthStateListener {
@Override
public void onAuthStateChanged(AuthData authData) {
if (authData != null) {
// user is logged in
userId = authData.getUid();
mFirebase = mFirebase.child(authData.getUid()).child("xxx");
Query mQuery = mFirebase.orderByChild("externalId").equalTo(externalId);
mQuery.addListenerForSingleValueEvent(new MyValueEventListener());
}
}
}
private class MyValueEventListener implements ValueEventListener {
@Override
public void onDataChange(DataSnapshot mDataSnapshot) {
if (mDataSnapshot.hasChildren()) {
Iterable<DataSnapshot> i = mDataSnapshot.getChildren();
Iterator<DataSnapshot> mIterator = i.iterator();
if (mIterator.hasNext()) {
mArrayList.clear();
}
while (mIterator.hasNext()) {
DataSnapshot c = mIterator.next();
mArrayList.add(c.getValue(mObject.class));
}
}
onTaskComplete(); // call the notifyDataSetChange() on the adapter.
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
}
我做错了吗? 在线它运作良好,但离线它将无法正常工作。 使用FAB创建新对象,该FAB打开一个新活动(修改对象),然后返回到该活动。 谢谢大家的帮助。