Android Firebase存储上传失败:StorageException -13010/404错误求助
Firebase Storage 上传图片失败(Code -13010/404)排查指南
先查最容易踩坑的点
- 存储路径与引用不匹配:
把你构建的Storage引用路径打印出来(Log.d("DebugPath", storageRef.toString())),和Firebase控制台里的存储桶路径一字一句比对。比如文件夹名少打字母、用户UID拼接错误(比如用了未登录的空值),都会导致找不到路径触发404。 - Storage规则没开对:
数据库公开不代表Storage权限也开放!去控制台检查Storage的规则,临时测试可先改成全开放(上线务必改回安全规则):
规则修改后等1-2分钟再测试,偶尔会有生效延迟。rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if true; } } }
再检查本地文件与代码逻辑
- 本地图片文件无效:
选完图片后,先验证Uri对应的文件是否存在且可读。用new File(uri.getPath()).exists()和canRead()确认,尤其是相机拍照获取的Uri,很容易出现路径解析错误,实在不行换用ContentResolver读取文件流上传。 - 上传代码细节错误:
检查上传前是否拿到了有效的用户UID?如果用户未登录就上传,用空UID作为路径肯定出问题。另外把失败回调的完整异常栈打出来,别只看表面的404,说不定里面藏着更具体的原因:storageReference.putFile(fileUri) .addOnFailureListener(e -> { Log.e("StorageFail", "上传出错", e); });
最后核对项目配置
- google-services.json是否正确:
对比旧项目的配置文件,重点看storageBucket字段是否和当前项目的存储桶一致,别用错了其他项目的配置文件。 - 依赖版本要统一:
确保Firebase Auth、Storage的依赖版本和旧项目完全匹配,版本不一致很容易出现诡异问题,比如:implementation 'com.google.firebase:firebase-auth:22.3.0' implementation 'com.google.firebase:firebase-storage:20.3.0'
内容的提问来源于stack exchange,提问作者Trần Anh Phương Ngô
相关产品推荐
相关产品推荐

