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()
我尝试从 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()