Skip to content

How to delete object from array in firestore

I have a problem with deleting an Object out of an Array in firestore. I have this data in firestore:

enter image description here enter image description here

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.

enter image description here

Answer

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);
  });
}