Firebase Auth手机号验证触发[BILLING_NOT_ENABLED]错误求助
解决Firebase Auth手机号验证抛出
BILLING_NOT_ENABLED错误的方案 问题核心
你遇到的[firebase_auth/unknown] An internal error has occurred. [ BILLING_NOT_ENABLED ]错误,本质是Firebase Auth依赖的GCP Identity Platform服务要求必须完成结算账户设置——哪怕你用的是Spark套餐且短信使用量为0,没绑结算账户就会触发这个限制。
解决步骤
- 登录GCP控制台,找到与你的Firebase项目关联的GCP项目
- 进入「结算」板块,创建并绑定结算账户(仅需绑定有效支付方式,免费额度内不会产生扣费,这是平台的身份验证要求)
- 确认项目的结算状态显示为「活跃」
- 回到Firebase控制台,检查「身份验证」-「登录方法」中,手机号登录功能处于启用状态
- 清除本地应用缓存(Android:清除应用数据;iOS:卸载重装应用)后,重新测试手机号验证流程
额外排查点
- 前往GCP控制台的「API和服务」-「已启用的API」页面,确认「Identity Toolkit API」已启用(Firebase Auth通常会自动启用该API,但手动验证更稳妥)
- 再次检查Android/iOS的GCP API密钥限制规则,确保没有误添加针对Identity Toolkit API的调用限制
- 确认Firebase项目的区域设置与手机号验证的目标区域匹配(部分区域可能有额外的结算要求)
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

