I have a problem with deleting an Object
out of an Array
in firestore
.
I have this data in firestore:
And now I would like to delete e.g the second Object
out of the posts Array
.
Code:
deletePic () { let docId = `${this.currentUser.uid}` fb.usersCollection.doc(docId).update({ posts: firebase.firestore.FieldValue.arrayRemove() }) .catch(function(error) { console.error("Error removing document: ", error); }); }
But I do not know how to define arrayRemove()
These are the pictures and each one has a delete button to delete the picture.
Advertisement
Answer
EDIT: Warning Do not use my solution as it is more than 3 years old, nowadays there is new solution : https://stackoverflow.com/a/59745086/6668441 Mine was a pure js one and is a bad pattern.
Can’t you use filter ? And then return the new posts array to your fb.usersCollection
method
//deleteId is the id from the post you want to delete posts.filter(post => post.id !== deleteId);
edit : So This should be something like :
deletePic (deleteId) { let docId = `${this.currentUser.uid}` //deleteId is the id from the post you want to delete fb.usersCollection.doc(docId).update({ posts: posts.filter(post => post.id !== deleteId); }) .catch(function(error) { console.error("Error removing document: ", error); }); }