Написали новый метод удаления уведомлений, которые получает пользователь, если другому пользователю нравится его публикация или комментарии или нравится его комментарий и т. Д. c. Проблема в том, что в базу данных добавляется уведомление о публикации, но когда я, например, «не похож» на комментарий (попадающий в ImageView), а затем, в отличие от него, уведомление с указанным c ID не удаляется из базы данных, и я Я не уверен, почему это так. Все уведомления для этого пользователя удаляются, когда я, например, «не похож» на сообщение, когда нужно удалить только то уведомление, которое было отправлено, потому что мне понравилось сообщение, а остальные нетронуты.
Может кто-нибудь сказать мне, почему это происходит и как это исправить?
PostAdapter
holder.like.setOnClickListener(v -> {
if (holder.like.getTag().equals("like")) {
FirebaseDatabase.getInstance().getReference().child("Likes").child(post.getPostid()).child(mFirebaseUser.getUid()).setValue(true);
addNotification(post.getPublisher(), post.getPostid());
} else {
FirebaseDatabase.getInstance().getReference().child("Likes").child(post.getPostid()).child(mFirebaseUser.getUid()).removeValue();
deleteNotification(post.getPublisher());
}
});
private void deleteNotification(String userId) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Notifications");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Notification notification = snapshot.getValue(Notification.class);
if (notification != null) {
reference.child(userId).child(notification.getNotificationId()).removeValue();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}