【问题标题】:Firebase: This domain is not authorizedFirebase:此域未经授权
【发布时间】:2016-09-17 13:32:24
【问题描述】:

我导入了 Firebase JS v3 API 并使用以下方法初始化 Firebase:

firebase.initializeApp(config);

但是应用程序无法通过 localhost 上的 Web 浏览器正确加载,导致以下错误:

错误:此域未授权您的 OAuth 操作 火力基地项目。编辑授权域列表 Firebase 控制台。

firebase.js:71:1333

【问题讨论】:

    标签: firebase mobile oauth


    【解决方案1】:

    我通过将localhost 域添加到OAuth redirect domains(在Firebase 控制台的Auth 选项卡上的SETUP SIGN IN METHOD 内)解决了这个问题。

    【讨论】:

    • 哦,他们将此设置移至“身份验证”部分的“登录方法”子部分。谢谢!
    • 它是否立即生效?我正在使用在我的主机文件中设置的假本地域,例如 myapp.localdevmachine.com。我将带有和不带有子域部分的它添加到 OAuth 重定向域中的 firebase 控制台,但我仍然在弹出窗口中收到 Unauthorized Request Origin 错误。我使用哪个提供商都没有关系,他们都会回到那个错误。我大约 1 小时前设置了它,但仍然失败。我还添加了 localhost,并将 127.0.0.1 添加到域中。
    • @JavierLerones 如果您完成了所有必需的步骤 (firebase.google.com/support/guides/firebase-web) 以升级到新的 Google API,那么它应该可以工作。
    • 什么是“在不同的网络浏览器中使用 localhost 而不是 127.0.0.1”?它与 ionic 应用程序配置有何关系?
    • 啊,所以这与真实设备无关...我从未在本地遇到过此问题,并认为您的问题与设备/模拟器有关
    【解决方案2】:

    确保您的配置中的“authDomain”与您的 Firebase 控制台中的一致。如果您在 localhost 上运行应用程序,请确保将其设置为 localhost 并且 localhost 存在于您的 Firebase 控制台上。

    Auth -> 登录方法 -> OAuth 重定向域

    var config = {
        apiKey: "...",
        authDomain: "...", // this should match the one on your firebase console
        databaseURL: "...",
        storageBucket: "",
    };
    firebase.initializeApp(config);
    

    【讨论】:

    • 我的匹配,但我仍然收到错误:未捕获错误:发生内部错误。
    • 我追查到错误信息,我的 api 密钥过期是罪魁祸首。我不知道它为什么过期。但是解决了。
    【解决方案3】:

    问题授权域 Firebase Locahost OAUTH2

    如果您使用的是 Google Chrome,您会发现 Identity Toolkit API 存在问题 禁用。您需要在 google cloud 项目上启用此 API 才能在 Firebase 项目中获取 OAUTH 服务。

    https://console.developers.google.com/apis/api/identitytoolkit.googleapis.com/overview?project=project-id

    【讨论】:

      【解决方案4】:

      在尝试了上面列出的所有选项以及其他网站上有关使用 FireBase oAuth 的所有选项后,对我有用的解决方案如下:

      1. 登录https://console.cloud.google.com
      2. 转到 API 和服务 > 凭据

      在此处找到您在连接到 FireBase 的应用中使用的 API 密钥

      1. 现在将您的自定义域添加到 HTTP 引荐来源网址

      对于 android 或 ios 或在所有三种媒体上都有您的应用程序,您需要为每个媒体创建 API 密钥。

      【讨论】:

      • 此处github.com/angular/angularfire2/issues/1444 的一些附加修复,似乎对于添加到 FireBase 安全身份验证部分的每个域也必须手动添加到 Google 控制台 API 和服务
      • 我的男人!非常感谢。这就是我一直在寻找的。​​span>
      【解决方案5】:

      在 firebase 控制台 Auth --> 授权域


      必须相等(在 Google 云控制台中 --> API 和服务 --> 凭据):


      必须相等(在 api 配置中):

      【讨论】:

        【解决方案6】:

        并非真正特定于 Android,但请查看您的actionCodeSettings 中的地址。

        actionCodeSettings.url 必须正确且已列入白名单。

        Authenticate with Firebase Using Email Link in JavaScript

        【讨论】:

          【解决方案7】:

          对于那些在 Heroku 中遇到此问题的人:

          确保 authDomain 属性与从 Firebase 获得的值相同。

          请勿将其更改为当前的 Heroku 域。

          【讨论】:

          • 请您解释一下或举个例子。 Heroku 我也面临同样的问题。
          【解决方案8】:

          Firebase 用户

          对我来说,错误的根源是该域未添加到 Firebase 控制台中。 这是 Firebase 控制台中的图像,用于为您的网站添加自定义域:

          【讨论】:

          • 如何将 localhost:3000 添加到认证域
          • @skyshine 单击添加域并键入localhost,如果它不在列表中,则不带端口号。 :-)
          【解决方案9】:

          以上答案都不适合我,因为我已经在授权域列表中有 localhost。对我来说,问题是 API 密钥不正确,我一定是从其中删除了其中一个字符。当我将 signInWithPopup 更改为 signInWithRedirect 时,我收到了更具描述性(或者更确切地说 - 不是误导)的错误消息。当 API 密钥过期时,可能会出现同样的问题。

          【讨论】:

            【解决方案10】:

            重点是..您必须将 yourprojectid.firebaseapp.com 域添加到授权域中..而不是您的真实域名。这对我有用。

            【讨论】:

              【解决方案11】:

              上述解决方案均不适合我,但确实如此。

              1. 转到 Google 控制台 身份验证 选项卡 > 登录方法 > 授权域
              2. 添加127.0.0.1

              localhost 已经在我的授权域中,但在我的情况下,我还需要添加 127.0.0.1

              【讨论】:

                猜你喜欢
                • 2018-06-13
                • 2016-10-06
                • 2016-10-24
                • 1970-01-01
                • 1970-01-01
                • 2018-06-15
                • 2019-10-30
                相关资源
                最近更新 更多