我正在爲我的android應用使用firebase數據庫。我爲其中一個firebase節點設置了ChildEventListener
。當該節點的直接子節點被刪除時,應該只是一次調用onChildRemoved()
,但在我的情況下,它會被調用多次。onChildRemoved()獲取多次調用
的原因,我覺得爲什麼發生這種情況是因爲我已經把ChildEventListener
在多個地方的同一節點在我的應用程序,因爲當我把我的應用程序ChildEventListener
一次,每胎刪除onChildRemoved()
方法被調用一次並如預期的那樣。
片段A
firebaseData.child("patients").addChildEventListener(new ChildEventListener() {
@Override
public void onChildRemoved(DataSnapshot dataSnapshot)
{
dataChangedforListviewInFragmentA(dataSnapShot);
}
});
片段B
firebaseData.child("patients").addChildEventListener(new ChildEventListener() {
@Override
public void onChildRemoved(DataSnapshot dataSnapshot)
{
dataChangedforListviewInFragmentB(dataSnapShot);
}
});
片段C
firebaseData.child("patients").addChildEventListener(new ChildEventListener() {
@Override
public void onChildRemoved(DataSnapshot dataSnapshot)
{
dataChangedforListviewInFragmentC(dataSnapShot);
}
});
在方法dataChangedforListviewInFragment()
我使用更新後的數據設置了listView
。 當節點patients
的直接子節點被刪除時,Fragment C
中的onChildRemoved()
被多次調用。
是否可以在我的應用程序的多個位置編寫ChildEventListener
,然後獲取其回調方法以調用正確的次數。謝謝。
下次,不要描述代碼,請包括最小代碼來重現問題中的問題。 –
對不起,但這裏沒有最小編碼。沒有代碼或許多代碼會讓問題變得直觀。這個問題本身就很明顯,如果你不清楚的話,如果需要的話,我會很樂意以更詳細的方式解釋。 –