javascript - 从 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);
});
}
},
如何迭代文档并删除它们?
解决方案
您可以按如下方式使用批量写入:
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);
});
}
推荐阅读
- javascript - 如何从 wikipedia api 获取表格数据作为行和列?
- php - Data type differences between PHP sqlsrv driver and PDO driver
- javascript - Threejs如何为大型物体设置相机
- visual-studio-code - ESLint 规则与 Prettier 规则冲突
- elixir - 在 elixir 生产应用程序中读取 ubuntu 环境变量
- java - java.lang.NoClassDefFoundError: com.ibm.ejs.ras.hpel.HpelHelper 在运行 jUnit 时
- c++ - 如何在 C++ 模板元编程中返回一种以上的类型?
- android - Firebase for Android 是否需要 Spring Boot?
- pandas - 在火花 sql 中加入两个数据帧时出现问题。请解决我的问题
- pine-script - 获得有史以来最高的 ema 值 Pine Editor