JS Firebase 数据库错误 db.ref 不是一个函数
2022-06-13
5387
嗨,我正在尝试在我的网站中实现 firebase 实时数据库 API,我正在遵循以下文档: https://firebase.google.com/docs/database/admin/save-data#node.js ,但我收到此错误:
这是我的代码:
<script type="module">
// Import the functions you need from the SDKs you need
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.8.3/firebase-app.js";
import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.8.3/firebase-analytics.js";
import { getDatabase } from "https://www.gstatic.com/firebasejs/9.8.3/firebase-database.js";;
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "xxxxxxxxxxxxxxxxxxxxx",
authDomain: "xx.x.xxx",
databaseURL: "xxxxxxxxxxxxxxxx",
projectId: "xxxxx",
storageBucket: "xxxxxxxxx",
messagingSenderId: "xxxx",
appId: "xxxxx",
measurementId: "xxxxxxx"
};
const fireapp = initializeApp(firebaseConfig);
const db = getDatabase(fireapp);
const ref = db.ref('server/saving-data/fireblog');
</script>
我做错了什么?我使用的版本可能不正确吗?
3个回答
您正在将 API 的新模块化/v9 语法与旧的命名空间语法混合使用,这是行不通的。
在 v9 中,最后一行的等效内容是:
将“
ref
”添加到
firebase/database
的
import
中:
import { getDatabase, ref }
from "<wherever you are getting firebase/database from>";
并替换最后一行:
const dbref = ref(db, 'server/saving-data/fireblog');
由于您似乎在使用过时的代码,我建议您随时查阅文档(例如,有关 获取引用 的部分)以比较 v8 和 v9 代码示例,以及阅读 升级指南 。
Frank van Puffelen
2022-06-13
您正在使用
Firebase Client SDK
,但引用的
Firebase Admin SDK
文档尚未完全模块化。请尝试使用
ref()
函数重构代码:
import { ref } from "firebase/database"
const dbRef = ref(db, 'server/saving-data/fireblog');
查看 Firebase JS SDK 文档( Modular 标签)了解正确的语法。
Dharmaraj
2022-06-13
看起来您正在使用 NodeJS 后端 SDK 的文档。前端开发的起点应该是 firebase docs – web start 。
对于您包含在网站中的 Web-SDK v9,有不同的功能可供使用。查看 firebase docs – web read/write 以了解如何使用它们。
几周前,当我第一次使用 firebase 进行网络开发时,我也感到很困惑。希望对您有所帮助。
Torben
2022-06-13