使用JS连接到Firebase时出现“ firebase.database.ref不是函数”

时间:2019-04-24 09:18:44

标签: javascript firebase firebase-realtime-database

尝试将网页连接到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>

2 个答案:

答案 0 :(得分:2)

您必须

const db = firebase.database().ref();

请参见https://firebase.google.com/docs/database/web/starthttps://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.