Firebase Storage uploadBytes函数无法接收元数据问题求助
解决Firebase Storage上传时的类型与元数据错误
你的代码触发两个核心问题,对应报错里的两个重载提示:
1. 自定义元数据格式不规范
Firebase Storage的UploadMetadata类型不允许直接添加自定义字段,所有自定义元数据必须嵌套在customMetadata对象中。你直接写{ projectTitle }不符合类型要求,导致类型校验失败。
2. Storage引用类型不兼容
报错显示StorageReference缺少child、delete等方法,大概率是导入Firebase Storage的方式有误——比如混用了模块化SDK和compat兼容模式的方法,导致创建的引用类型不匹配。
修正后的代码
// 确保导入Firebase v9+模块化SDK的正确方法 import { ref, uploadBytes } from "firebase/storage"; let projectUploadImage = getFiles(); let projectTitle = getProjectTitle(); async function addProject() { // 正确的自定义元数据结构 let metadata = { customMetadata: { projectTitle: projectTitle } }; // 用统一导入的ref方法创建存储引用 let uploadRef = ref(storage, projectUploadImage[0].name); await uploadBytes(uploadRef, projectUploadImage[0], metadata); }
额外验证点
- 确认
storage实例是通过getStorage(app)(v9+)正确初始化的,而非旧版的firebase.storage() - 所有Storage相关方法(ref、uploadBytes等)都从
firebase/storage统一导入,避免混用compat版本的API
内容的提问来源于stack exchange,提问作者user21707349
相关产品推荐
相关产品推荐

