You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法为us-central1区域的Gen1 Firebase函数添加allUsers主体

Firebase Gen1 HTTP函数无法添加allUsers作为Cloud Function Invoker的解决方案

问题背景

运行超1年的Firebase项目,此前每月添加函数均正常,本周创建两个Node14、us-central1区域的Gen1 HTTP触发函数时,无法为其添加带有Cloud Function Invoker角色的allUsers主体,报错:

Error: Principals of type allUsers and allAuthenticatedUsers cannot be added to this resource

项目无组织归属,公开数据共享设置无影响,函数代码示例:

exports.FUNCTIONNAME = functions
    .https
    .onRequest(async (request, response) => HANDLERNAME(request, response))

已尝试Stack Overflow旧方案无效,同问题在2023年线程中出现,已提交Firebase支持请求。

可行排查/解决步骤

  • 检查全局组织政策约束:即使项目不属于组织,Google Cloud的默认全局政策可能限制了权限添加。执行以下命令查看项目关联的组织政策:
    gcloud resource-manager org-policies list --project=YOUR_PROJECT_ID
    
    重点关注constraints/iam.allowedPolicyMemberDomains,如果该政策存在且未允许公共主体,需调整政策规则以支持allUsers。
  • 通过gcloud命令直接添加权限:绕过Firebase控制台,用命令行尝试添加,若报错会返回更具体的政策限制信息,便于定位问题:
    gcloud functions add-iam-policy-binding FUNCTIONNAME --region=us-central1 --member="allUsers" --role="roles/cloudfunctions.invoker"
    
  • 验证函数入口访问设置:确认函数的 ingress 设置为允许外部访问,执行命令查看当前配置:
    gcloud functions describe FUNCTIONNAME --region=us-central1 | grep ingressSettings
    
    若结果为INGRESS_SETTINGS_INTERNAL_ONLY或INGRESS_SETTINGS_PRIVATE,需修改为允许所有访问:
    gcloud functions deploy FUNCTIONNAME --region=us-central1 --ingress-settings=all
    
  • 升级运行时版本:Node14已进入维护阶段,Google Cloud对旧运行时的权限政策可能有调整,尝试升级到Node16/18(Gen1支持的版本),重新部署函数后再尝试添加权限。

内容的提问来源于stack exchange,提问作者Magnus Espeland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:32:44