首页 > 解决方案 > 从 Firebase 中删除文档

问题描述

我有一个包含 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);
    });
  }
},

如何迭代文档并删除它们?

标签: javascriptfirebasevue.jsgoogle-cloud-firestore

解决方案


您可以按如下方式使用批量写入:

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

 }

推荐阅读