0
// Group node listener were all the user group messages arriving
public void listenToGroupNode() {
Log.i("FireBase", "listenToGroupNode");
try {
final List<UserGroups> dataFromDataBase = new UserGroupsActions(dbHelper).getAllUserGroups();
for (int i = 0; i < dataFromDataBase.size(); i++) {
final String groupId = dataFromDataBase.get(i).getId();
if (!listenedUserGroups.contains(groupId)) {
listenedUserGroups.add(groupId);
try {
Firebase mFirebaseRef = new Firebase(Constants.FIRE_BASE_URL).child(Constants.CHAT_TYPE_GROUP + File.separator + groupId);
childEventListeners.add(mFirebaseRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
ChatData chatData = dataSnapshot.getValue(ChatData.class);
if (!messagesActions.isMessageAvailable(chatData.getMessageId()))
handleReceivedMessage(groupId, chatData);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
handleRemovedMessage(dataSnapshot.getKey());
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
}));
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
上述方法我寫聽一個號碼在一個用戶組具有在聊天應用程序的用戶可能可以具有多於100組和我用於循環聽通過創建回調在線的每個節點,並能正常工作,現在我想刪除所有這些監聽器當用戶點擊退出,我怎麼能做到這一點在拆卸多個回調一旦在火力地堡
意味着我應該保留所有的firebase引用和回調引用,當我需要刪除它們時 –
沒有保持監聽器,也將保留相應的FireBase參考也刪除它們,當我希望,謝謝弗蘭克範,是有任何方法來檢查一個聽衆是否完全刪除,否則我可能會收到我註銷後的消息:( –
清理註釋,因爲我把它們寫入答案... –