0

我正在尝试将我的实时 Firebase 数据库连接到我的 Web 应用程序并最终将数据存储在其中。

加载我的 HTML 文件时,我一直遇到同样的问题。我在控制台中得到的错误是Uncaught ReferenceError: firebase is not defined.

这是我的脚本的样子:

<script type="module">

      import { initializeApp } from "https://www.gstatic.com/firebasejs/9.5.0/firebase-app.js";
      import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.5.0/firebase-analytics.js";

      const firebaseConfig = {
        apiKey: "<api key>",
        authDomain: "<domain>",
        databaseURL: "<db url>",
        projectId: "<project id>",
        storageBucket: "<bucket>",
        messagingSenderId: "<id>",
        appId: "<app id>",
        measurementId: "<id>"
      };

      const app = initializeApp(firebaseConfig);
      const analytics = getAnalytics(app);

      var database = firebase.database();
      var postListRef = database.ref('posts');
      var newPostRef = postListRef.push();
      newPostRef.set({
        "post1": "testing"
      });

</script>
4

1 回答 1

2

您正在使用新的 v9 模块化 SDK 语法从 Firebase 导入函数。在该语法中,您拥有诸如 的顶级函数getDatabase(),而不是诸如firebase.database().

您的代码段中的实时数据库代码等效于:

var database = getDatabase(app);
var postListRef = ref(database, 'posts');
var newPostRef = push(postListRef);
set(newPostRef, {
  "post1": "testing"
});

我建议保留有关读取和写入数据将数据附加到列表以及模块化升级指南的 Firebase 文档。


如果您有很多现有的实时数据库代码,您可以通过先导入compat路径来分步迁移:

import firebase from 'firebase/compat/app';
import 'firebase/compat/database';
于 2021-11-25T03:03:38.543 回答