I want to delete an item in my RecyclerView when I click the delete button it also deletes other items.
Here is my firebase structure
I want to delete each item or the pushed key in my firebase but what happens in my code if I click a 1 item it deletes others also.
here is my code
List<FetchRheinSubject> fetchDataList = new ArrayList<>();
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ViewHolderClass viewHolderClass=(ViewHolderClass)holder;
FetchRheinSubject fetchData = fetchDataList.get(position);
viewHolderClass.subjectName.setText(fetchData.getSubjectName());
viewHolderClass.day.setText(fetchData.getDay());
viewHolderClass.time.setText(fetchData.getTime());
}
@Override
public int getItemCount() {
return fetchDataList.size();
}
public class ViewHolderClass extends RecyclerView.ViewHolder {
TextView subjectName, day, time , subCounter;
ImageView delete;
public ViewHolderClass(@NonNull final View itemView) {
super(itemView);
subjectName=itemView.findViewById(R.id.subjectName);
day=itemView.findViewById(R.id.day);
time=itemView.findViewById(R.id.time);
delete = itemView.findViewById(R.id.deleteIcon);
subCounter = itemView.findViewById(R.id.subCounter);
final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().getRoot().child("rhein_subject");
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChildren()) {
DataSnapshot firstChild = dataSnapshot.getChildren().iterator().next();
firstChild.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});