So I store a user with field called myMovies in firestore. I am able to successfully add a movie in this array but when I try to remove one it does not work and the logic behind the adding and removing is similar.
It does show me that the array is successfully updated but in firestore the element I delete is still there.
Here is my code:
@Override
public void removeMovie(Movie movie, FirebaseAddMovieListener listener) {
firebaseFirestore.collection("users").document(Objects.requireNonNull(mAuth.getCurrentUser()).getUid()).update("myMovies", FieldValue.arrayRemove(movie))
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
listener.onSuccess("SUCCESS");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
listener.onFailure(e.getMessage() + e + e.getLocalizedMessage());
}
});
}
Add Movie
@Override
public void addMovieToUserLibrary(Movie movie, FirebaseAddMovieListener
listener) {
firebaseFirestore.collection("users").document(Objects.requireNonNull(mAuth.getCurrentUser()).getUid()).update("myMovies", FieldValue.arrayUnion(movie))
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
listener.onSuccess("SUCCESS");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
listener.onFailure(e.getMessage() + e + e.getLocalizedMessage());
}
});
}