如何通过API或gcloud为Firebase项目启用登录方式
实现方案
可以不通过Firebase控制台,通过官方API或gcloud CLI完成邮箱密码等登录方式的启用配置。
之前请求失败的常见原因
你调用的API路径和updateMask参数都是正确的,请求失败大概率是以下两种问题:
- 未携带有效身份凭证:请求必须使用具备
firebaseauth.configs.update权限的账号的OAuth 2.0令牌,无凭证或凭证权限不足会返回401/403错误。 - 请求体结构不匹配:updateMask指定的字段,需要在请求体里有对应的层级结构。
方法1:直接调用REST API
- 先获取临时访问令牌,已登录gcloud的前提下执行以下命令生成:
gcloud auth print-access-token - 构造PATCH请求,替换请求地址中的
{project-id}为你的Firebase关联的Google Cloud项目ID:
- 请求地址:
https://identitytoolkit.googleapis.com/admin/v2/projects/{project-id}/config?updateMask=signIn.email.enabled,signIn.email.passwordRequired - 请求头:
Authorization: Bearer 上一步生成的令牌字符串 Content-Type: application/json - 请求体:
{ "signIn": { "email": { "enabled": true, "passwordRequired": true } } }
发送请求即可完成邮箱密码登录的启用。
方法2:使用gcloud CLI(更简单)
不需要手动构造请求,直接执行内置命令即可:
- 先切换到目标项目(可选,也可以直接在命令中指定项目):
gcloud config set project 你的项目ID - 执行启用邮箱密码登录的命令:
gcloud firebase auth configs update --enable-email-signin
如果需要禁用则将参数改为--no-enable-email-signin即可。
权限要求
不管使用哪种方式,操作账号或服务账号需要持有Firebase身份认证管理员、项目编辑者或项目所有者权限,否则会触发权限不足错误。
内容的提问来源于stack exchange,提问作者santidev
相关产品推荐
相关产品推荐

