安装firebase/storage-resize-images@0.2.6后部署失败求助
解决Firebase Storage Resize Images扩展部署及IAM权限问题
问题描述
我通过命令行安装firebase/storage-resize-images@0.2.6:
firebase ext:install firebase/storage-resize-images@0.2.6
安装过程无报错,生成了extensions/storage-resize-images.env文件,日志显示已启用cloudtasks.googleapis.com、storage-component.googleapis.com API,并授予Cloud Tasks Enqueuer、Storage Admin角色。
执行部署命令:
firebase deploy --only extensions
时收到错误,提示Firebase Storage未设置,但我的Firebase Storage已启用并正在使用。
在控制台安装该扩展时,还会遇到IAM相关错误,提示无法访问服务账号projects/-/serviceAccounts/117789708590500044065,已尝试启用所有可能权限仍无法部署。
可能的解决方法
1. 核对存储桶配置
- 打开
extensions/storage-resize-images.env文件,确认STORAGE_BUCKET变量值是你的Firebase Storage存储桶完整名称(例如your-project-id.appspot.com)。如果该变量缺失或值错误,部署时会触发"Storage未设置"的误判。 - 执行
firebase apps:sdkconfig命令,对比输出里的storageBucket字段,确保和.env文件中的值完全一致。
2. 修复服务账号异常
- 错误里的服务账号格式
projects/-/serviceAccounts/...明显异常,这是项目ID未正确关联导致的。先执行firebase projects:list确认当前可用项目,再用firebase use <你的项目ID>切换到正确项目。 - 去Google Cloud控制台的IAM页面,搜索服务账号ID
117789708590500044065,确认它属于当前Firebase项目。如果找不到,说明扩展安装时服务账号创建失败,先执行firebase ext:uninstall storage-resize-images删除扩展,再重新安装,安装过程中务必选对项目。 - 给该服务账号手动添加以下权限:
- Cloud Tasks Enqueuer(roles/cloudtasks.enqueuer)
- Storage Admin(roles/storage.admin)
- Service Account User(roles/iam.serviceAccountUser)—— 这个权限容易被忽略,是服务账号调用其他Google服务的必要前提。
3. 确认API启用状态
- 进入Google Cloud控制台的API库,检查
Cloud Tasks API、Cloud Storage API、Firebase Extensions API是否都已启用,且归属当前Firebase项目。 - 执行
firebase use命令,确认CLI当前指向的项目和你要部署的项目一致,避免因项目上下文混乱导致的配置不匹配。
4. 升级扩展版本
- 你安装的
0.2.6版本属于旧版本,存在已知的配置检测和IAM权限兼容问题。尝试安装最新稳定版本:
firebase ext:install firebase/storage-resize-images@latest
新版本通常修复了这类遗留bug。
内容的提问来源于stack exchange,提问作者KhoPhi
相关产品推荐
相关产品推荐

