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

Firebase Angular Web集成Apple登录遇auth/operation-not-allowed错误求助

Firebase Apple 登录 auth/operation-not-allowed 报错排查方案

问题场景

已完成Apple开发者账号配置、Firebase控制台启用Apple登录,但调用登录代码时触发auth/operation-not-allowed错误,此前还遇到过浏览器拦截登录弹窗的问题。

调用代码

logInApple() {
    const provider = new OAuthProvider('apple.com');
    provider.addScope('email');
    provider.addScope('name');

    const auth = getAuth();
    signInWithPopup(auth, provider)
      .then((result) => {
        debugger;

        // The signed-in user info.
        const user = result.user;

        // Apple credential
        const credential = OAuthProvider.credentialFromResult(result);
        const accessToken = credential.accessToken;
        const idToken = credential.idToken;

      })
      .catch((error) => {
        debugger;
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.customData.email;
        // The credential that was used.
        const credential = OAuthProvider.credentialFromError(error);

        // ...
      });
      
} // logIn()

错误信息

Firebase: The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section. (auth/operation-not-allowed).

此前触发的错误:

Firebase: Unable to establish a connection with the popup. It may have been blocked by the browser.


排查修复步骤

  • 核对Firebase Apple登录配置细节
    进入Firebase控制台→Authentication→登录方法→Apple,逐一确认:

    • 状态为「启用」
    • 「主要App ID」与Apple开发者后台开启Sign in with Apple的App ID完全一致
    • 「团队ID」匹配Apple开发者账号的团队ID
    • 「服务ID」填写Apple后台创建的Sign in with Apple专属服务ID(非App ID)
    • 「私钥」是Apple后台下载的.p8文件完整内容,且该私钥已关联对应服务ID
      配置完成后点击「保存」,等待5-10分钟让配置同步生效(Firebase存在配置延迟)
  • 解决弹窗拦截问题

    • signInWithPopup必须绑定用户主动交互事件(如按钮点击),禁止在页面加载、定时器等非用户触发场景调用
    • 测试时关闭浏览器弹窗拦截功能,或把当前域名加入信任列表
  • 代码层面校验

    • 确认使用Firebase SDK v9及以上版本,与官方示例版本匹配
    • 确保getAuth()获取的是当前项目的Auth实例,无跨项目配置引用错误
    • 移除调试用的debugger语句,避免打断登录流程
  • 重置配置缓存

    • 删除Firebase控制台的Apple登录配置,重新添加并完整填写所有信息
    • 清除浏览器缓存后重启应用测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:40:34