Firebase Admin SDK:Cloud Functions v2创建自定义Auth令牌遇权限错误
Firebase Functions v2升级后createCustomToken权限问题排查与解决
核心问题根源
Functions v2默认使用App Engine默认服务账号(格式:[项目ID]@appspot.gserviceaccount.com)运行,而v1可能使用旧的运行账号或自定义账号。你之前给其他服务账号添加的「Service Account Token Creator」角色,大概率没有覆盖到v2函数实际使用的账号。
解决步骤
1. 确认函数使用的服务账号
进入Google Cloud控制台的IAM页面,定位到当前v2函数对应的运行账号:
- 默认场景下是App Engine默认服务账号;若你配置了自定义服务账号,以实际配置的账号为准。
2. 为目标账号添加权限
在IAM页面找到该账号,点击编辑按钮,添加「Service Account Token Creator」角色:
- 权限资源范围至少要覆盖项目内的Firebase Admin服务账号(通常是
firebase-adminsdk-[后缀]@[项目ID].iam.gserviceaccount.com),最稳妥的方式是将资源范围设为整个项目。
3. 验证权限生效
权限变更通常需要1-5分钟生效,之后重新测试函数调用。若仍报错,可尝试重启v2函数实例,确保新权限被加载。
关于API调用方式
无需更换API,getAuth().createCustomToken(uid)在Functions v2中完全兼容,问题并非API变更导致,而是权限配置未同步到v2的运行账号。
内容的提问来源于stack exchange,提问作者Witek
相关产品推荐
相关产品推荐

