【问题标题】:Can't refresh the page after deleting something from firebase从firebase中删除某些内容后无法刷新页面
【发布时间】:2020-10-11 15:35:46
【问题描述】:

我正在从管理面板中删除一行,并使用一个按钮删除该行中包含的集合。我想在删除集合后自动刷新页面,以便我可以看到更改(不应该再存在的行)。但我无法做到这一点,因为它破坏了我的删除功能并且只刷新页面而不进行任何更改。

   db.collection("barberForm").where("id", "==", String(costumer.id))
        .get()
        .then(function(querySnapshot) {
          querySnapshot.forEach(function(doc) {
            doc.ref.delete();    
          })
        }).then(window.location.reload())    
      

        .catch(function(error) {
          console.log("Error getting documents: ", error);
        });    })
    .catch((error) => console.log('error', error));

};

【问题讨论】:

    标签: javascript reactjs database firebase google-cloud-firestore


    【解决方案1】:

    delete() 返回一个承诺,因此您需要等待所有这些承诺解决后再重新加载页面。您还应该为链中的下一个承诺创建一个完整的回调函数以重新加载页面:

            .then(function(querySnapshot) {
              const promises = [];
              querySnapshot.forEach(function(doc) {
                promises.push(doc.ref.delete());
              })
              return Promise.all(promises);
            })
            .then(() => {
              window.location.reload()
            })    
    

    【讨论】:

      【解决方案2】:

      即使您的then() 函数中没有任何数据,您也应该“创建”一个函数。

      所以您的.then(window.location.reload()) 应该更新为:
      .then(() => {window.location.reload()})
      .then(() => {window.location.href = window.location.href})

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 2015-09-23
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        相关资源
        最近更新 更多