【发布时间】:2019-02-26 11:52:49
【问题描述】:
我正在尝试将 Firebase 添加到 Chrome 扩展程序并收到错误“Uncaught ReferenceError: firebase is not defined”,当我按照我在 Internet 上找到的示例(包括我在 Stack Overflow 上找到的所有答案)进行操作时。
我的 background.js 文件只有几行:
var config = {
apiKey: "x-x",
authDomain: "xx",
databaseURL: "xx",
projectId: "xx",
storageBucket: "xx",
messagingSenderId: "xx"
};
firebase.initializeApp(config);
清单同样简单:
{
"name": "test",
"version": "0.0.32",
"description": "test",
"background": {
"persistent": true,
"scripts": [
"background.js",
"firebase-app.js",
"firebase-firestore.js"
]
},
"short_name": "test",
"permissions": [
"activeTab"
],
"content_security_policy": "script-src 'self' https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'",
"manifest_version": 2
}
如果我尝试使用 firebase.js(取自 Angular 7 node_modules 目录)而不是 firebase-app.js 和 firebase-firestore.js(取自 firebase-bower-master),Chrome 会抱怨并说我应该只包含我想使用的特定功能的包。
我发现的每个示例都表明 js 脚本应该自动加载到 background.js 中并且可以正常工作。
我错过了什么?
感谢您的帮助!
爱德华
【问题讨论】:
-
我会尝试的第一件事是更改脚本的顺序,所以
background.js是最后一个。 -
Chris - 你是如何让 JSON 格式化的?我试过(显然)没有成功.....
-
超级!奇怪的是,在我的完整应用程序中,我有另一个包含在 background.js 之后的 js 文件,它工作正常。然而,把 background.js 放在最后就成功了。非常感谢!!
-
酷;我不是 100% 确定,但懒得自己尝试;)但是,如果脚本 A 使用脚本 B,那么脚本 B 需要高于脚本 A。所以你描述的内容并没有什么奇怪的。 background.js 不需要是 last,但它需要位于 firebase 脚本之下。至于格式,代码缩进四个空格(基本上是Markdown)。
标签: javascript firebase google-chrome-extension