#reactjs #google-cloud-firestore
#reactjs #google-облако-firestore
Вопрос:
Я хочу удалить один документ, а затем удалить другой в следующем .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`})
})
}
Ответ №1:
Вам не нужно это последнее 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`}) ;
});
});
}
})
}