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参考也删除它们,当我希望,谢谢弗兰克范,是有任何方法来检查一个听众是否完全删除,否则我可能会收到我注销后的消息:( –
清理注释,因为我把它们写入答案... –