React Native:使用“refFromURL”从firebase中删除图像
Posted
技术标签:
【中文标题】React Native:使用“refFromURL”从firebase中删除图像【英文标题】:React Native: Delete Image from firebase with "refFromURL" 【发布时间】:2021-11-05 12:49:19 【问题描述】:我尝试从 Firebase 中删除图像。我认为问题在于我没有得到 URL。刷新平面列表后,我收到以下警告:
"可能的未处理承诺拒绝 (id: 1): 对象 "
仅当我在删除项目后刷新平面列表时才会显示此警告。
“downloadURL”是我将图像上传到 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();
);
);
;
【问题讨论】:
【参考方案1】:正如错误文本所说,如果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()
【讨论】:
感谢您的回复!嗯,当然,我的坏!但它仍然给我同样的错误/警告。如果我在顶部控制台登录console.log(item.downloadURL);
,它会给我正确的URL,但如果我尝试显示此代码.refFromURL(snapshot.data().item.downloadURL)
,我也尝试了.refFromURL(item.downloadURL)
。如果我控制台日志snapshot.data().downloadURL.url
没有显示。
你能告诉我items
是什么吗?你有没有在数据库中作为json
的屏幕截图。如果您使用item.downloadURL
获得downloadURL
,我建议您直接使用它,而不是从snapshot
获得。我会更新答案
现在可以了,感谢您的帮助。我用工作结果更新了我的问题。但是,我将 firebase.storage 更改为 storage() 然后它就可以工作了。
对不起,我改变了它,因为我认为这也是一个错误。很高兴听到它起作用了:)以上是关于React Native:使用“refFromURL”从firebase中删除图像的主要内容,如果未能解决你的问题,请参考以下文章
在另一个 React-Native 库中使用 React-Native 库
更新 react-native 后无法使用 react-native-debugger
React Native 速成 002 — 使用 UI框架 React Native Elements
React Native:对原生依赖使用自动链接“react-native-maps”