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

React + Firebase已启用登录提供程序却提示“禁用”的问题求助

解决Firebase Email & Password登录提示“提供商已禁用”的问题

这种情况真的挺挠头的——明明控制台开了开关,代码却报错,还好数据库能通信,说明基础连接没问题,咱们一步步排查:

  • 先仔细核对控制台的项目和设置
    别笑,我自己都犯过这种低级错误:开了好几个Firebase控制台标签,不小心在旧项目里改了设置,当前开发用的项目其实根本没开对应开关。确认这几点:

    1. 控制台右上角显示的项目名称是不是你开发用的那个
    2. 进入Authentication -> Sign-in Method,确保Email/Password的主开关是「Enabled」(下面的「Email link (passwordless sign-in)」不影响普通密码登录,不用管它)
    3. 顺便看看「Authorized domains」里有没有你本地开发的域名(比如localhost:3000),虽然数据库能通信,但Auth服务可能单独做了域名限制
  • 核对代码里的Firebase配置
    去控制台的「Project Settings」->「Your apps」,找到你创建的Web应用,复制最新的配置对象,和代码里firebase.initializeApp()里的参数逐一对比——重点看authDomain、apiKey这两个字段,很多时候是复制错了旧项目的配置,导致Auth请求发到了错误的项目上。

  • 清缓存+重启开发服务
    本地开发环境经常会缓存旧的配置数据,试试这两步:

    1. 关掉你的开发服务器(比如npm start的进程),完全重启一次
    2. 清除浏览器的LocalStorage和SessionStorage,或者直接用隐私窗口测试登录功能
  • 检查登录代码的调用方式
    确认你用的是正确的Email密码登录方法,别不小心调用了其他登录提供商的接口。比如代码应该是这样的:

    import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
    
    const handleLogin = async (email, password) => {
      const auth = getAuth();
      try {
        const userCredential = await signInWithEmailAndPassword(auth, email, password);
        // 登录成功后的业务逻辑
      } catch (error) {
        console.error(error.message);
      }
    };
    

    别把signInWithEmailAndPassword写成signInWithPopup或者其他非密码登录的方法了。

  • 更新Firebase依赖包
    旧版本的firebase npm包可能和控制台的新配置不兼容,试试更新到最新版:

    npm install firebase@latest
    
  • 最后排查项目状态
    虽然数据库能通信,但还是确认一下项目有没有欠费或者被暂停:去控制台的「Billing」页面看看计费状态,有没有未支付的账单导致Auth服务受限。

如果这些步骤都试了还是不行,你可以把代码里的Firebase初始化部分和控制台设置的截图(打码敏感信息)贴出来,方便进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:16:17