Контекст проблемы:
1) У меня проблемы с приложением-клоном в социальных сетях, в частности с фидом пользователей (в программе recyclerView) и манипулированием сообщениями (в классе ViewHolder).
2) Представления заполняются из базы данных Firebase Realtime.
3) Создание «поста» работает правильно (вся информация правильно передается в Firebase и загружается в переработчик).
4) Я могу удалить сообщение из Firebase, используя:
firebaseRecyclerAdapter.getRef(postsViewHolder.getAdapterPosition()).removeValue();
Однако, если я создаю новое сообщение после удаления предыдущего сообщения, ранее удаленное сообщение снова появляется как в базе данных, так и в программе утилизации.
Наблюдения за проблемами:
1) Похоже, что локальная копия сообщения хранится в массиве (я не создавал массив, поэтому должен быть какой-то массив по умолчанию, инициируемый снимком данных или чем-то еще ).
2) Если я смогу каким-то образом сбросить индекс этого скрытого массива, я думаю, что проблема будет решена. Для каждого сеанса приложения определено, что recyclerView заполняет столько сообщений, сколько было в текущем сеансе. Чтобы уточнить, я могу создать сообщение, перезагрузить сеанс, удалить его, создать другое сообщение, и удаленное сообщение не появится снова.
Попытки проблемы:
Я пытался использовать
1) newsFeedRecycler.getRecycledViewPool().clear();
2) firebaseRecyclerAdapter.notifyItemRangeRemoved(0,firebaseRecyclerAdapter.getItemCount());
3) postsViewHolder.itemView.destroyDrawingCache();
4) newsFeedRecycler.setAdapter(firebaseRecyclerAdapter);
5) firebaseRecyclerAdapter.notifyDataSetChanged();
6) firebaseRecyclerAdapter.notifyItemRemoved(postsViewHolder.getAdapterPosition());
и более в течение 3 дней, чтобы попытаться эффективно стереть удаленный пост из локальной памяти, а также из Firebase.
Проблема Обращение:
Я очень новичок в Java и узнал то, что я знаю сейчас, из практического подхода, поэтому в моем понимании проблемы может быть что-то упущенное. Тем не менее, я знаю, что этот вопрос не является дубликатом, так как я попробовал практически все решения, которые я мог найти при переполнении стека, которые даже удаленно решали эту проблему. Я был бы очень признателен, если бы кто-нибудь помог мне понять, в чем проблема и как ее решить. Приветствия