更换笔记本+转移Firebase账号后部署Functions遇SignatureDoesNotMatch错误
部署Firebase Functions时出现SignatureDoesNotMatch错误,提示请求签名与服务端验证不匹配。结合你更换笔记本、转移账号至新Blaze套餐的操作,问题大概率出在本地配置残留、权限同步或存储相关的签名验证环节——你提供的sendWelcomeMail代码未涉及Cloud Storage操作,错误里的/uploads-abc.zip指向存储桶请求,和当前函数逻辑无关。
清理本地Firebase配置残留
换电脑和账号后,本地可能遗留旧账号的认证信息,执行以下命令重置:firebase logout firebase login --reauth firebase use --clear完成后重新关联你的新项目:
firebase use [你的项目ID]更新服务账号密钥并验证权限
确保本地service_account.json是新账号下生成的最新密钥文件,不要复用旧账号的文件。同时去Google Cloud控制台IAM页面,确认部署用的账号同时拥有Cloud Functions Admin和Storage Admin权限,转移账号后权限可能存在延迟同步,刷新页面确认权限已生效。同步系统时间
签名验证依赖精准的时间戳,若本地电脑时间与服务器时间偏差过大,会直接导致签名失效。将系统时间同步至网络时间服务器,再重新尝试部署。重置本地项目配置
删除项目根目录下的.firebase文件夹,执行firebase init functions(选择保留现有代码),重新生成配置文件后再部署。检查存储桶相关配置
针对错误里的存储桶gs://xyz.com,确认新账号对该桶拥有完整操作权限,同时检查桶的CORS配置是否存在冲突(若有跨域请求场景)。
内容的提问来源于stack exchange,提问作者Mufaddal Shakir

