在 firebase 中尝试在启动时获取不存在的数据时如何处理获取错误?
当我的使用效果调用应用程序加载开始时不存在的元素时,或者用户尚未设置任何个人资料图像时,我收到 GET/404 错误。 我遇到了 2 个错误,catch 块处理了一个错误,但我仍然遇到了 1 个错误。
useEffect(() => {
if (_authContext?.currentUser) {
const getImg = async () => {
const storage = getStorage();
const storageRef = ref(storage, `profiles/${_authContext.currentUser.uid}/profile-image`);
await getDownloadURL(storageRef)
.then((url) => {
if (url) {
setLoaded(url)
}
})
.catch((err) => console.log(err));
};
getImg();
}
}, []);
I am getting a GET/404 error when my use effect is calling for an element that doesn't exist at the start of app loading, or if the user has not set any profile image just yet.
I was getting 2 errors the catch block handle one but still I am getting one error.
useEffect(() => {
if (_authContext?.currentUser) {
const getImg = async () => {
const storage = getStorage();
const storageRef = ref(storage, `profiles/${_authContext.currentUser.uid}/profile-image`);
await getDownloadURL(storageRef)
.then((url) => {
if (url) {
setLoaded(url)
}
})
.catch((err) => console.log(err));
};
getImg();
}
}, []);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Firebase 存储具有内置错误处理程序。请参阅下面的示例代码:
上面的代码应该处理来自 Firebase 的错误。如果该文件不存在,您的控制台/网络选项卡中将会出现
GET
404(未找到)错误。对于这种情况有一个解决方法,您可以运行list( )
或listAll()
命令,以在运行getDownloadURL()
之前确保文件是否存在于目录中。请参阅下面的示例代码以供参考:Firebase Storage have built-in error handler. See example code below:
The code above should handle the error from Firebase. If the file doesn’t exist, there’ll be a
GET
404 (Not Found) error in your console / network tab. There's a workaround for this scenario, you can run alist()
orlistAll()
command to ensure if the file exist in the directory before running thegetDownloadURL()
. See sample code below for reference: