Go语言Gen2 Google Cloud Function在Firebase路由中的认证权限问题
Firebase路由重写Gen2 Cloud Function 403问题排查与解决
1. 修正firebase.json重写规则格式
Gen2 Cloud Functions要求重写规则必须显式指定区域和函数ID,不能沿用Gen1的简化格式。正确配置示例:
{ "hosting": { "rewrites": [ { "source": "/readrequest/**", "function": { "functionId": "readrequest", "region": "us-central1" } } ] } }
- 确保
source路径与你实际访问的Firebase路由完全匹配(注意大小写敏感) - 不要遗漏
region字段,你的函数部署在us-central1,必须明确声明
2. 验证Cloud Function权限配置
即使你设置了开放所有人访问,仍需确认权限细节:
- 进入GCP控制台的Cloud Functions页面,找到
readrequest函数 - 切换到权限标签,确认
allUsers已被授予Cloud Functions Invoker角色 - 避免误配置为
Viewer或其他无调用权限的角色
3. 重新部署Firebase Hosting
修改firebase.json后,必须执行部署命令让规则生效:
firebase deploy --only hosting
未部署的规则不会生效,这是常见的疏漏点
4. 排查规则优先级与路径匹配问题
若写错函数名仍返回相同403,说明重写规则未正确匹配:
- 检查是否有优先级更高的规则(比如
"source": "**")排在当前规则之前,导致函数规则被覆盖 - 确认
source路径无拼写错误,比如多余的斜杠、大小写不一致等
5. 验证函数本身的可访问性
直接通过GCP函数域名测试:https://us-central1-<你的项目ID>.cloudfunctions.net/readrequest
- 若此地址正常访问,说明问题完全在Firebase重写规则配置
- 若此地址也返回403,重新检查函数的部署状态和权限设置
内容的提问来源于stack exchange,提问作者Mquinteiro
相关产品推荐
相关产品推荐

