【问题标题】:How to use firebase auth in my own chrome extension如何在我自己的 chrome 扩展中使用 firebase auth
【发布时间】:2018-02-01 00:13:52
【问题描述】:

我想使用 Angular 创建简单的 chrome 扩展。我创建了一个主页,用户可以通过谷歌帐户登录。这很容易,因为我使用了 AngularFire2。当我想在我自己的扩展的上下文菜单中使用 firebase 时出现问题:f.e:

context-menu.js

var clickedFunc = function(info, tab) {
    console.log(info, tab)
    alert('click');
};

var parent = chrome.contextMenus
  .create(
    {
      "title": "check click",
      "contexts": ["selection"],
      "onclick": function(info, tab) {
        clickedFunc(info);
      }
    }
  );

这些代码工作正常,但如果我尝试以这种方式在上下文菜单中使用 firebase:

context-menu.js

var firebase = require('firebase/app');

var config = {
  apiKey: 'secret',
  authDomain: 'secret', // you know what I mean
};

var app = firebase.initializeApp(config);
var clickedFunc = function(info, tab) {
    console.log(info, tab)
    alert(firebase.app().name);
};

var parent = chrome.contextMenus
  .create(
    {
      "title": "check click",
      "contexts": ["selection"],
      "onclick": function(info, tab) {
        clickedFunc(info);
      }
    }
  );

chrome 扩展程序安装在我的浏览器中。 我可以打开主页,但没有显示原始上下文菜单。谁能帮帮我?

我添加了其他文件的其他部分,这会产生错误:

ma​​nifest.json 的一部分

  "background": {
    "persistent": true,
    "scripts": ["home.js", "context-menu.js", "firebase.js"]
  },
  "permissions": [
    "tabs",
    "contextMenus"
  ],
  "content_security_policy": "script-src 'self' 'unsafe-eval'; https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'",

【问题讨论】:

    标签: angular firebase google-chrome-extension firebase-authentication


    【解决方案1】:

    您需要下载 firebase.js 并将其放入您的扩展程序中,然后使用相对 url 加载它。不允许您的扩展程序访问外部脚本。

    【讨论】:

    • 我下载了 firebase.js 并添加到“脚本”中的扩展:[“home.js”、“context-menu.js”、“firebase.js”]。做错什么了吗?
    • 这有点被埋没了,在 Chrome/Firebase 提供的示例中没有突出显示......但答案是:Chrome 扩展程序只能使用弹出操作(signInWithPopup 和 linkWithPopup),作为 Chrome 扩展程序不能使用 HTTP 重定向。您应该从后台脚本而不是浏览器操作弹出窗口调用这些方法,因为身份验证弹出窗口将 > 取消浏览器操作弹出窗口。
    • 我将 Firebase 股票代码添加到我的 background.js 页面,并将 firebase.js 添加到清单的后台脚本部分(firebase.js 与扩展一起打包)。 "背景": { "脚本": ["/dscripts/jquery-3.1.1.min.js","/dscripts/firebase.js","/scripts/background.js"]},来自 [firebase.google.com/docs/auth/web/facebook-login][1]
    • @SaravananNandhan 如果您在评论中输入的是“答案”,那么请编辑您的答案以反映它。最好带有指向该信息的链接。
    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 2020-04-26
    • 2019-01-06
    • 2018-04-29
    • 1970-01-01
    • 2016-10-12
    • 2017-10-15
    • 2017-03-27
    相关资源
    最近更新 更多