我正在爲我的Android應用使用Firebase。使用像我已經成功地檢索到的信息在多個地方在我的代碼:未調用Firebase onDataChange
dbRef = new Firebase(Constants.URL_DB);
childRef = dbRef.child(Constants.KEY_CHILD);
objectRef = childRef.child(objectId);
// Log the URL to the object.
// This has been verified. The path is good.
Log.d("DEBUG", "To String: " + objectRef.toString());
childRef.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.d("DEBUG", "Success");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("DEBUG", "Failure");
}
});
完全相同的代碼已經在另一個活動,但出於某種原因成功使用,不會對特定的活動在工作(onDataChange是從來沒有打過電話,也沒有打過電話)。其他活動中的Firebase會話是否與此相沖突?我看到可以解決的問題:
Firebase.goOnline();
Firebase.goOffline();
儘管我不確定我是否理解那些確切的功能。也許這是因爲我無法訪問由他的ID添加了push()
的孩子?
UPDATE:
我成功地在數據庫中objectRef寫,但onDataChange()
仍不會被調用。
您製作的所有Firebase對象最終會轉到連接到服務器的同一會話/套接字。所以這些活動不應該在這方面互相干擾。您可能想要檢測連接狀態是否發生更改,而不是調用'goOffline()'/'goOnline()'https://www.firebase.com/docs/web/guide/offline-capabilities.html#section-connection -state –