React Native:使用 "refFromURL" 从 firebase 中删除图像

React Native: Delete Image from firebase with "refFromURL"

我尝试从 firebase 中删除图像。我认为问题是我没有得到 URL。刷新平面列表后,我收到以下警告:

"可能未处理的承诺拒绝 (id: 1): 对象 {}"

此警告仅在删除项目后刷新平面列表时显示。

“下载URL”是我上传图片到firebase时下载的URL。是 URL 我应该找谁还是我错了?

export function deleteBoards(item) {
  return (dispatch, getState) => {
    return new Promise((resolve, reject) => {
      firebase
        .firestore()
        .collection('coachboards')
        .doc(auth().currentUser.uid)
        .collection('userCoachboards')
        .doc(item.id)
        .delete()
        .then((snapshot) => {

          //Here I try to delete the image from firebase storage
          storage()
           .refFromURL(snapshot.data().downloadURL.url)
           .delete()
            .then(function () {
              resolve();
            })
            .catch(function (error) {console.log(error)});
        })
        .catch(() => {
          reject();
        });
    });
  };
}

更新结果✅

export function deleteBoards(item) {
  return (dispatch, getState) => {
    return new Promise((resolve, reject) => {
      firebase
        .firestore()
        .collection('coachboards')
        .doc(auth().currentUser.uid)
        .collection('userCoachboards')
        .doc(item.id)
        .delete()
        .then(() => {
          //Here I try to delete the image from firebase storage
          storage()
            .refFromURL(item.downloadURL)
            .delete()
            .then(() => {
              resolve();
            })
            .catch(error => {
              reject();
            });
        })
        .catch(() => {
          reject();
        });
    });
  };
}

如错误文本所述,如果 delete 失败,您没有处理错误情况。尝试在那里添加 reject():

export function deleteBoards(item) {
  return (dispatch, getState) => {
    return new Promise((resolve, reject) => {
      firebase
        .firestore()
        .collection('coachboards')
        .doc(auth().currentUser.uid)
        .collection('userCoachboards')
        .doc(item.id)
        .delete()
        .then(() => {
          //Here I try to delete the image from firebase storage
          firebase.storage()
           .refFromURL(item.downloadURL)
           .delete()
            .then( () => {
              resolve();
            })
            .catch((error) => {
                reject()
            });
        })
        .catch(() => {
          reject();
        });
    });
  };
}

您能否也记录这个 snapshot.data().downloadURL.url 值以查看它是否正确。

也不应该是firebase.storage()而不是storage()