I am working on an application where I have a wishlist checkbox(heart icon) on my recyclerview items at Home Fragment, So when the user clicks on the heart icon it adds that particular item to the Wishlist Fragment, and when the user again clicks it, I want it to delete the item from the wishlist fragment. While adding the item it is working properly but when I try to delete it, it is not working and gives me a null pointer error.
CODE IS HERE
holder.wishlist.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
Boolean isCheck = compoundButton.isChecked();
//CODE TO ADD THE ITEM TO THE WISHLIST THROUGH HOME FRAGMENT
if(isCheck)
{
firebaseFirestore.collection("wishlistDetails").document(uid).set(wishMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful())
{
holder.wishlist.setButtonDrawable(R.drawable.ic_favorite_filled);
Toast.makeText(context, "item added to wishlist" + pos , Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
//CODE TO DELETE THE ITEM FROM WISHLIST THROUGH HOME FRAGMENT
}else {
firebaseFirestore.collection("wishlistDetails").document(wishlist_models.get(position).getUid())
.delete()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(context, "item removed from wishlist", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
WISHLIST MODEL CODE
public class Wishlist_Model {
private List<String> images;
private String name;
private String email;
private String delete;
private String uid;
public Wishlist_Model() {
}
public Wishlist_Model(List<String> images, String name, String email, String delete, String uid) {
this.images = images;
this.name = name;
this.email = email;
this.delete = delete;
this.uid = uid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getDelete() {
return delete;
}
public void setDelete(String delete) {
this.delete = delete;
}
public List<String> getImages() {
return images;
}
public void setImages(List<String> images) {
this.images = images;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
}
FIRESTORE COLLECTION
ERROR IT IS THROWING
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
