Uncaught ReferenceError: Firebase is not defined

Uncaught ReferenceError: Firebase is not defined

我正在尝试按照有关在 firebase 中设计数据库的教程进行操作,但我在 JavaScript 控制台中收到以下错误:

Uncaught ReferenceError: Firebase is not defined

这是教程的 link,我在 JavaScript 控制台中尝试 运行 的代码片段是:https://www.firebase.com/blog/2014-11-04-firebase-realtime-queries.html

var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("height").on("child_added", function(snapshot) {
  console.log(snapshot.key() + " was " + snapshot.val().height + " meters tall");
});

在标题中,包括以下内容:

<head>
    <script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
  </head>

那就解决问题了。

我在通过 "ionic add firebase" 安装 firebase 时遇到了同样的问题。这添加了 Firebase 版本 3.2.0。然后,在寻找答案时,我尝试了 2.4.2 版本的 cdn,错误消失了,所以我想通了通过 ionic 下载的版本是导致错误的原因,所以我下载了 2.4.2 版本,现在它可以工作了。

希望这对您有所帮助。

有一个关于如何迁移到新版本的指南。
您可以在以下位置找到它:https://firebase.google.com/support/guides/firebase-web

这是适合您的相关片段

我有 firebase.util 库的问题,正如 Rodrigo 所说,我认为是版本问题。

之前:

    var ref = new Firebase('url');

现在:

    firebase.initializeApp(config);

由于 firebase 对象的定义不同,因此找不到它。就我而言,我需要更新库以与 firebase 3.0 版兼容。我不认为使用旧库是个好主意,不合时宜,但必须将代码更新到版本 3。如果还没有人这样做,可能是我们为社区做出贡献的机会。

<head>
    <script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
    <link rel='stylesheet' type='text/css' href='/resources/tutorial/css/example.css'>
  </head>

从 firebase 创建连接变量。

con = {
    "apiKey": "your key",
    "authDomain": "example.firebaseapp.com",
    "databaseURL": "https://example.firebaseio.com/",
    "projectId": "example",
    "storageBucket": "example.appspot.com",
    "messagingSenderId": "id"
};

使用这个初始化 firebase

firebase.initializeApp(con);

如果您像我一样使用 Firebase 托管(并使用 <script src="/__/firebase/7.14.5/firebase-app.js"></script>),那么如果您尝试在没有 运行ning firebase serve

如果您使用的是 firebase web api 那么在正文标记中首先包含核心 firebase SDK 非常重要,此 SDK 提供 firebase 可访问性。如图所示。

,之后我们必须包含所有相关的 api 代码。这是可用的

这些对你有帮助,它会很好地解决你的问题,这是没有定义的 firebase,你不需要添加任何其他脚本的

如果有人在 2021 年 7 月遇到此问题,这是我的解决方案:

1.) 使用 CLI!!!这太容易了! (只需 npm install -g firebase-tools

2.) CD 到您的首选目录并执行 firebase login

3.) 登录您的 firebase 帐户

4.) 执行 firebase init 并完成所有步骤

5.) 在您的 public/ 文件夹中创建一个 app.js 文件

6.) 添加此代码:

document.addEventListener('DOMContentLoaded', event => {
        const app = firebase.app();
});

你现在应该一切顺利,只需确保在 EventListener 中编写与 FireBase 交互的任何代码

您的项目应如下所示:

我也遇到了同样的问题。问题出在我的 api.js 文件上。

const api = liveAPi;

var firebaseConfig = {
  apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  authDomain: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  projectId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  storageBucket: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  messagingSenderId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  appId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  measurementId: "xxxxxxxxxxxxx"
};
  // Initialize Firebase
firebase.initializeApp(firebaseConfig);

它清楚地表明它没有访问 firebase 对象。 Firebase 建议通过 <script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-app.js"> ,

添加js文件
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-app.js"></script>

<!-- TODO: Add SDKs for Firebase products that you want to use
     https://firebase.google.com/docs/web/setup#available-libraries -->
<script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-analytics.js"></script>

<script>
  // Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
  var firebaseConfig = {
    apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      authDomain: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      projectId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      storageBucket: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      messagingSenderId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      appId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      measurementId: "xxxxxxxxxxxxx"
  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.analytics();
</script>

但我正在访问 js 文件中的 firebase 对象。

因此要解决此问题:在 HTML 中包含 api.js 文件之前将这些添加到 firebase 对象,如下所示:-

<script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-app.js"></script>

<script src="../js/fetch/api.js"></script>

这将使 api.js 能够访问 firebase 对象。

还有一些其他方法与访问 javascript 文件中的那些 firebase 对象有关,但 firebase 通过全局对象提供的默认设置是安全的。

而且,将Javascript代码全部写在APP.js中并访问firebase对象和方法的方法也是一个不错的选择,但对于较大的项目来说非常痛苦。由于您需要重构您的代码 bundle/include 到一个文件 App.js.

答案是将此添加到 html 文件中的 head 标记 我认为这应该可以解决问题 添加 Firebase SDK:https://firebase.google.com/docs/database/web/start?authuser=0

如果没有解决,请访问此站点:https://firebase.google.com/docs/database/web/read-and-write?authuser=0

<head>
    <script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
    <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
    <link rel='stylesheet' type='text/css' href='/resources/tutorial/css/example.css'>
  </head>

乐于助人