我有一个数组,其中包含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);
});
}
},
如何迭代文档并将其删除?
答案 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);
});
}