Firebase未在Chrome扩展程序内容脚本中加载

时间:2014-10-26 03:40:23

标签: 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 

我做错了什么?

1 个答案:

答案 0 :(得分:5)

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

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

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

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