Не могу удалить более одного комментария, после первого комментария я должен выйти, затем повторно ввести действие, чтобы другие комментарии исчезли

#java #android #firebase #firebase-realtime-database

#java #Android #firebase #firebase-realtime-database

Вопрос:

Я добавляю функцию, позволяющую пользователю удалять свой комментарий, который со следующим кодом работает нормально, НО удаляет комментарий только один раз. Сказать, что я открываю свою CommentActivity и там я написать 3 комментария, а потом я решу, удалите все 3 или 2, так что происходит, когда он позволяет мне снять 1 комментарий, который получает удален и удален сразу же, но другие я должен выйти CommentActivity и снова войти на комментарии, которые я попытался удалить, ушел. Я хочу иметь возможность удалять ВСЕ комментарии и чтобы они исчезли сразу.

Кто-нибудь может сказать мне, почему / как это исправить?

CommentsActivity

 private void readComments() {
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Comments").child(mPostId);
        ChildEventListener childEventListener = new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                Comment comment = dataSnapshot.getValue(Comment.class);
                try {
                    comment.setComment(decrypt(comment.getComment(), mPassword));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                mCommentList.add(comment);
                keysList.add(dataSnapshot.getKey());
                mCommentAdapter.notifyItemInserted(mCommentList.size() - 1);
            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
                int index = keysList.indexOf(dataSnapshot.getKey());
                mCommentList.remove(index);
                keysList.remove(index);
                mCommentAdapter.notifyDataSetChanged();
                mCommentAdapter = new CommentAdapter(getApplicationContext(), mCommentList, mPostId);
            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        };

        reference.addChildEventListener(childEventListener);
    }