reactjs - 删除另一个文档后删除文档firebase firestore-react-web
问题描述
我希望删除一个文档,然后在下一个.then()
方法中删除另一个文档,尽管我不确定如何将值传递给下一个.then()
方法?
exports.deleteJobPost = (req,res) => {
const document = db.collection("users").doc(req.user.username).collection("MyJobPosts").doc(req.params.jobPostId)
document.get().then(doc => {
if(!doc.exists){
return res.status(404).json({error: "Job Post Not Found"})
}
if(doc.data().username !== req.user.username){
//403 Forbidden
return res.status(403).json({error: "unauthorised"})
} else {
const state = doc.data().state
const category = "electrical"
console.log("this is state and category: " + state + " " + category)
const secondDocument = db.collection("JobPosts").doc(state).collection(category).doc(req.params.jobPostId);
return document.delete(),secondDocument.delete;
}
})
.then(() => {
res.json({message: `Job Post Deleted Successfully`})
})
}
解决方案
您当前的代码不需要最后一个then()
,但在删除第一个文档后确实需要一个,下面的代码应该足以满足您的目标:
exports.deleteJobPost = (req,res) => {
const document = db.collection("users").doc(req.user.username).collection("MyJobPosts").doc(req.params.jobPostId)
document.get().then(doc => {
if(!doc.exists){
return res.status(404).json({error: "Job Post Not Found"})
}
if(doc.data().username !== req.user.username){
//403 Forbidden
return res.status(403).json({error: "unauthorised"})
} else {
const state = doc.data().state
const category = "electrical"
console.log("this is state and category: " + state + " " + category)
const secondDocument = db.collection("JobPosts").doc(state).collection(category).doc(req.params.jobPostId);
document.delete().then(() => {
secondDocument.delete().then(() => {
res.json({message: `Job Post Deleted Successfully`}) ;
});
});
}
})
}
推荐阅读
- php - 正则表达式替换 PHP 以在某些前缀后获取数字或范围
- c# - C# - 通过调用 PS 脚本为 Powershell 使用 Quest 活动目录 cmdlet
- http - Jax-RS - ContainerResponseFilter 的过滤器有时仅触发
- c++ - 编译 C++ Paho MQTT 代码给出错误“找不到 Paho MQTT C 库”
- arrays - 排序不能正常工作角度 4
- javascript - mapStateToProps 对象未定义
- c - 将项目添加到链表段错误的末尾
- laravel - Laravel 5.5 管理员路由问题
- python - 浮点数中的小数索引数 - python
- c# - Oracle打开连接在其他计算机上不起作用