Firebase Storage上传成功后访问URL返回404错误排查求助
Firebase Storage图片访问404问题修复方案
根因分析
你在调用Storage上传接口时,指定的文件存储路径为Type/${fileName},即文件实际存放在存储桶的Type目录下。但拼接访问URL时仅传入了文件名,未携带Type/路径前缀,导致URL指向存储桶根目录下的同名文件,资源不存在所以返回404错误。
修复代码
1. 修正访问URL拼接逻辑
存储对象的访问路径需要包含完整的目录层级,路径中的斜杠需URL编码为%2F,修改imageUrl拼接代码:
imageUrl = `https://firebasestorage.googleapis.com/v0/b/${config.storageBucket}/o/Type%2F${fileName}?alt=media`;
2. 补全Promise返回避免异步问题
原代码中Firestore写入操作未返回Promise,会导致Promise链断裂,可能出现请求异常、资源写入失败未捕获的问题,修改对应逻辑:
.then(data => { if(data.exists){ return res.status(400).json({error: `${fields.type} already exist`}) } // 补充return,让Promise链正常传递 return db.collection('Type').doc(fields.type).set({ type: fields.type, category: fields.category, details: fields.details, imageUrl }) })
其他排查点
如修改后仍有问题可检查:
- 确认
config.storageBucket取值与Firebase项目存储桶地址完全一致 - 检查Storage安全规则是否允许对应路径的文件访问权限
内容的提问来源于stack exchange,提问作者Kelvin
相关产品推荐
相关产品推荐

