尝试将网页连接到Firebase实时数据库时出现奇怪的错误。我收到错误消息
未捕获的TypeError:firebase.database.ref不是一个函数。
错误指向下面的代码行
const db = firebase.database.ref();
我从firebase项目复制了脚本,并添加了导入。对于初始化,我删除了该问题的apiKey等。
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-app.js">
</script>
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase-
database.js"></script>
<script>
// Initialize Firebase
const config = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
};
firebase.initializeApp(config);
</script>
<script>
const db = firebase.database.ref();
</script>
答案 0 :(得分:2)
您必须
const db = firebase.database().ref();
请参见https://firebase.google.com/docs/database/web/start和https://firebase.google.com/docs/reference/js/firebase.database.Database
请注意,您可以将变量重命名为rootRef
而不是db
,并为db
使用firebase.database()
答案 1 :(得分:0)
我不确定在不看完整代码的情况下是否可以使用很多代码(不是在谈论firebase apikey和其他东西),但是在使用React-Native的几周前,我遇到了这个问题。现在,尽管它们的功能不同,但错误可能是因为您缺少一些库或者您没有使用它们的最新版本。错误详细信息并不像看起来那样友好。 我通过安装最新的库解决了此问题-有时,即使您确实安装了headsup,它们也倾向于安装时出错,因此最好的猜测是先“删除已安装的软件包”,然后再“ reinistall”。 还要添加以下
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script>.
那之后,我记得有时不得不分别需要Database和Auth块,因为在以这种方式包含Firebase时,它们不是捆绑在一起的。所以我使用以下代码修复了它,
var firebase = require('firebase/app');
require('firebase/auth');
require('firebase/database');
最后但并非最不重要的一点是,您还缺少代码中的function(),但我不确定仅是问题所在。所以只需添加
const db = firebase.database().ref();.I do have a feeling this could fix it alone , but sometimes it might need all the packages above as well . Let me know how it goes . Good luck . Connecting can be a hasle sometimes for all not just you.