javascript - Firebase 未加载到 Chrome 扩展内容脚本中

标签 javascript google-chrome google-chrome-extension firebase

我正在尝试在我的 chrome 扩展程序的内容脚本中加载 Firebase:

var script   = document.createElement("script")
script.type  = "text/javascript"
script.src   = "https://cdn.firebase.com/js/client/1.1.2/firebase.js"
document.body.appendChild(script)

firebaseUrl = 'https://foobar.firebaseio.com'
root = new Firebase(firebaseUrl)

但我收到错误信息:

Uncaught ReferenceError: Firebase is not defined 

我做错了什么?

最佳答案

您正在做的是使用 document.body.append(...) 注入(inject) firebase 库。然后,您尝试从您的扩展程序内部访问 firebase 库,但 chrome 扩展程序在沙盒中远离网页。您将 firebase 库注入(inject)到网页中,因此您的扩展程序无法直接访问它。您可以通过以下两种方式之一访问它:

  1. 将要与 firebase 交互的代码注入(inject)网页。它将能够与注入(inject)的 firebase 代码进行交互。

  2. 下载 firebase 库 javascript,并将 firebase 代码添加到您的 chrome 扩展 list 中。您必须下载它并将其与您的扩展代码库的其余部分打包在一起。然后可以直接在您的扩展代码中使用它。

我个人建议 2. 将所有代码保存在 chrome 沙箱中并且不向用户公开任何 firebase 代码(因为他们可以检查网页并查看您注入(inject)的代码)或网站更安全。如果您需要使用任何 secret 或私钥连接到 Firebase,则尤其如此。

关于javascript - Firebase 未加载到 Chrome 扩展内容脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569565/

相关文章:

javascript - 在弹出窗口外部单击时隐藏 Bootstrap 弹出窗口

javascript - 应用程序缓存错误事件:无法将新缓存提交到存储

javascript - 如何防止系统强制暗模式?

javascript - 谷歌浏览器 JavaScript 数组错误?

javascript - 通过 Chrome 扩展程序中的上下文菜单选项复制所选文本

javascript - 如何在现有的隐身窗口中打开新标签页?

javascript - D3.js 前置(类似于 jQuery 前置)

c# - 在 WebBrowser Windows Phone 中订阅回调函数 javascript

javascript - Firestore : Multiple 'array-contains'

google-chrome - 识别 Chrome 网页