Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase未加载到chrome扩展内容脚本中_Javascript_Google Chrome_Google Chrome Extension_Firebase - Fatal编程技术网

Javascript Firebase未加载到chrome扩展内容脚本中

Javascript Firebase未加载到chrome扩展内容脚本中,javascript,google-chrome,google-chrome-extension,firebase,Javascript,Google Chrome,Google Chrome Extension,Firebase,我正在尝试将Firebase加载到我的chrome扩展的内容脚本中: 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

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

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(…)
注入firebase库。然后,您试图从扩展内部访问firebase库,但chrome扩展被沙盒从网页中移除。您已将firebase库注入网页,因此扩展无法直接访问它。您可以通过以下两种方式之一访问它:

  • 将要与firebase交互的代码注入网页。它将能够与注入的firebase代码交互

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


  • 我个人推荐2。将所有代码都保存在chrome沙箱中,并且不向用户公开任何firebase代码(因为用户可以查看网页并查看注入的代码)或网站,这样更安全。如果您需要使用任何密钥或私钥连接到firebase,这一点尤其正确。

    感谢您的详细解释。我也使用了2:)GitHub中还有一个示例chrome扩展和Firebase,您可以参考:请看一下这个,我认为它可能会对您有所帮助