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

Next.js项目Firebase电话认证遇auth/invalid-app-credentials错误求助

解决Firebase电话认证本地环境auth/invalid-app-credentials错误

可能的原因及修复步骤

1. Firebase项目配置或API密钥限制变更

即使无代码变更,Firebase后台配置可能自动触发限制:

  • 核对Firebase控制台项目设置 > 应用 > Web应用中的API密钥,确认本地使用的密钥与控制台一致,且该密钥未设置IP访问限制(若之前未开启,可能误触发)。
  • 进入Authentication > Sign-in method > Phone,确认localhost:3000(或你的本地开发端口)在授权域名列表内,重点核对域名格式(是否带端口)。

2. Next.js本地缓存干扰

本地开发缓存可能留存旧的Firebase配置:

  • 删除.next缓存文件夹并重启开发服务器:
    rm -rf .next && npm run dev
    
  • 清除浏览器本地存储与Cookie,尤其是Firebase相关的认证缓存。

3. 生产号码的安全策略拦截

测试号码属于Firebase白名单,可跳过严格验证,非测试号码需完整流程,本地环境可能触发安全防护:

  • 检查Authentication > Phone > 高级设置,若开启了严格的「防止滥用」模式,可临时降低防护等级排查(仅测试用,生产环境需恢复)。
  • 确认Firebase初始化代码参数完整,避免appId/projectId缺失导致凭据验证失败:
    const app = initializeApp({
      apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
      authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
      projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
      storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
      messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
      appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
    });
    

4. 本地网络拦截

防火墙、VPN或代理可能阻断Firebase验证请求:

  • 关闭VPN/防火墙(或临时允许开发服务器网络请求),直接连接网络测试。
  • 切换至手机热点等其他网络环境,排除本地网络问题。

额外排查动作

  • 用Postman直接调用https://identitytoolkit.googleapis.com/v1/accounts:sendVerificationCode?key=你的API密钥,携带正确请求体(phoneNumber、recaptchaToken等),判断是项目配置问题还是本地代码/缓存问题。
  • 检查本地环境变量,确保NEXT_PUBLIC_FIREBASE_API_KEY等变量未被覆盖或写错。

内容的提问来源于stack exchange,提问作者Smitesh Arolkar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:34:57