【问题标题】:"Uncaught ReferenceError: firebase is not defined" when adding firebase to chrome extension将firebase添加到chrome扩展时“未捕获的ReferenceError:未定义firebase”
【发布时间】: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


【解决方案1】:

根据 Chris 的建议,将 background.js 放在最后就可以了。

  "background": {
    "persistent": true,
    "scripts": [
      "firebase-app.js",
      "firebase-firestore.js",
      "background.js"
    ]
  },

【讨论】:

  • 你从哪里获得或下载其他脚本... firebase-app.js & firebase-firestore.js
猜你喜欢
  • 2022-07-21
  • 2016-10-20
  • 2016-04-30
  • 1970-01-01
  • 2020-10-08
  • 2021-06-17
  • 1970-01-01
  • 2021-01-03
  • 2021-12-21
相关资源
最近更新 更多