удалить документ после удаления другого документа firebase firestore — react — web

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