从Firebase删除文档

时间:2020-04-29 12:59:32

标签: javascript firebase vue.js google-cloud-firestore

我有一个数组,其中包含firebase的文档ID。我需要单击按钮以删除Firebase中的这些文档。

   deletePosts() {
  db.collection("users")
    .doc(user.email)
    .collection("posts")
    .doc(this.selectedPosts[0].id)  
    .delete()
    .then(() => {
      console.log("Success!");
    })
    .catch(err => {
      console.log(err);
    });
  }
},

如何迭代文档并将其删除?

1 个答案:

答案 0 :(得分:2)

您可以按以下方式使用batched write

deletePosts() {

    let batch = db.batch();
    this.selectedPosts[0].forEach(element => {
        batch.delete(db.collection("users").doc(user.email).collection("posts").doc(element.id));
    });
    batch.commit()
    .then(() => {
       console.log("Success!");
    })
    .catch(err => {
       console.log(err);
    });
}

请注意,批量写入最多可包含500个操作。如果您预见到可能必须删除500多个,则可以使用Promise.all(),如下所示:

deletePosts() {

      const promises = [];
      this.selectedPosts[0].forEach(element => {
            promises.push(db.collection("users").doc(user.email).collection("posts").doc(element.id).delete());
      });
      Promise.all(promises);
      .then(() => {
         console.log("Success!");
      })
      .catch(err => {
         console.log(err);
      });

 }