You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Storage文件上传生成9b损坏文件、进度显示NaN问题排查

问题根因

你代码里调用put方法时参数传递错误,是导致问题的核心原因:
Firebase Storage的Reference.put()方法标准传参规则为:
put(待上传内容, 元数据对象[可选], 上传配置[可选])
你当前代码的调用写法为:

.put(file, "", {
  contentType: file.type ? file.type : "image/jpeg",
})

第二个参数错误传入了空字符串,触发了Firebase的参数解析异常,框架将空字符串识别为待上传的内容,原本的file参数被忽略,所以最终上传的文件只有空字符串对应的9字节大小,文件自然损坏无法打开。
而上传进度为NaN的原因是:空字符串对应的总字节数为0,计算进度时bytesTransferred / totalBytes出现了除0运算,结果为NaN。

修复方案

调整put方法的参数,把contentType配置放到第二个元数据参数位即可:

uploadTask = storageRef
  .child(uid)
  .child("uploads")
  .child("note-images")
  .child(fileName)
  .put(file, {
    contentType: file.type ? file.type : "image/jpeg",
  });

另外建议你补全当前空的error回调逻辑,添加错误打印方便后续排查上传异常:

// 原error回调
(error) => {
  console.error("上传出错:", error)
},

内容的提问来源于stack exchange,提问作者Rohan Keskar18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:45:01