【问题标题】:Firebase Auth with Firefox Web Extension Add On带有 Firefox Web 扩展插件的 Firebase 身份验证
【发布时间】:2018-07-09 04:32:12
【问题描述】:

我正在为 chrome 和 firefox 创建一个网络扩展程序。我已经集成了 firebase UI 和 firebase auth。 Google 身份验证在 chrome 扩展上运行良好。但是在 Firefox 扩展/附加组件上,它给了我以下错误。

This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.

我尝试了几件事,但都没有成功。

  1. 尝试在 Firebase 身份验证控制台的授权域中添加 moz-extension://dhhjsbhjbajnsabjajbasjbhjasjh 。验证错误。
  2. 尝试了pop upredirect 两种登录方法。

其他开发人员在为 cordova 或 ionic 开发时也面临类似的问题

【问题讨论】:

    标签: javascript node.js firebase firebase-authentication firefox-addon


    【解决方案1】:

    Firebase 身份验证不支持 Firefox 扩展。您可以为此提交feature request

    与此同时,您可以通过从扩展程序打开的弹出窗口登录用户,然后 CORS 将结果发送到扩展程序,确保在执行此操作之前检查扩展程序的来源。例如,假设您使用 OAuth 提供商登录,打开您拥有的弹出窗口,使用 Firebase 登录,然后将 OAuth 访问令牌传递给扩展程序,然后从那里传递 signInWithCredential

    【讨论】:

    • 由于Scripts may not close windows that were not opened by script 错误,弹出窗口将不起作用。由于window.opener is null 错误,postMessage 将无法在新的子选项卡上工作。因此,目前 Firebase Auth 无法在 Mozilla Firefox Extension 上运行。最糟糕的是,Firebase 团队只能允许使用 moz-extension:// 协议(他们允许使用 chrome-extension:// 协议),但他们不这样做。这个问题存在了几年,但他们没有做任何修复。可能是因为 Google Chrome 浏览器和 Mozilla Firefox 浏览器之间的竞争。
    • 这就是你从后台脚本调用它的原因。 Chrome 扩展程序中也存在同样的问题。 documentation 声明了此建议。
    • 你误解了我的意思。我的意思是signInWithPopup 方法,而不是扩展的弹出页面。 signInWithPopup 方法在 Mozilla Firefox 上不起作用(如果从 Iframe 调用它,因为不支持 moz-extension:// 协议),因为 Scripts may not close windows that were not opened by script 错误。
    • 您能否显示一些代码 - 如何执行此操作。我正在尝试通过调用 firebase.auth().signInWithPopup(new firebase.auth.GoogleAuthProvider()) 打开弹出窗口。从后台脚本 --- 给出错误 -- 不支持操作
    【解决方案2】:

    我不确定您是否必须使用身份验证提供程序。如果没有,您可以使用firebase.auth().signInWithEmailAndPassword(email, password)。这在 Firefox 插件上运行良好。在添加了 firefox 插件的资源页面上进行了测试。

    【讨论】:

      【解决方案3】:

      Firebase 目前不支持 Chrome 之外的扩展环境,例如 Firefox 插件和 Safari 扩展。

      您可以在 this page 上查看支持的环境的完整列表。

      您还可以提交功能请求,要求 Firebase 支持其他环境,例如 Firefox 插件和 Safari 扩展程序here

      【讨论】:

        猜你喜欢
        • 2019-01-08
        • 1970-01-01
        • 2019-02-26
        • 2019-09-12
        • 2012-05-10
        • 1970-01-01
        • 2016-03-27
        • 2016-10-05
        • 2021-10-16
        相关资源
        最近更新 更多