没有调用onDataChange

时间:2016-03-06 10:09:48

标签: android firebase

我正在尝试从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打开一个新活动(修改对象),然后返回到该活动。 谢谢大家的帮助。

0 个答案:

没有答案