繁体   English   中英

在 web 上收听 child_changed(Firebase 实时数据库)

[英]Listen to child_changed (Firebase Realtime Database) on web

我是 javascript 和 firebase 的新手,我创建了单个 web 页面,我想听下面的child_changed事件是我的代码

<!DOCTYPE html>
<html>
<body>

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

var config = {
  apiKey: "AIzaSyAqPnuP-EwU2WXreJ_3Ks_er0KbTKE-BNg",
  authDomain: "hellofirebase-a1794.firebaseapp.com",
  databaseURL: "https://hellofirebase-a1794.firebaseio.com"
};

firebase.initializeApp(config);

var commentsRef = firebase.database().ref().child('hellofirebase-a1794');

commentsRef.on('child_changed', function(data) {
window.alert("sometext"+data.val());
});       
</script>   
</body>
 </html>

我的数据库结构如下

hellofirebase-a1794
               |
               |
               ------betteryLevel : 12

但是当我从 Firebase 控制台更改值时,我没有收到事件,也没有在 chrome 控制台中收到任何错误,请任何人帮助我这是什么问题

从更改您的代码

var commentsRef = firebase.database().ref().child('hellofirebase-a1794');

至:

var commentsRef = firebase.database().ref().child('/');

您不需要将hellofirebase-a1794 (您的根目录)添加到数据库引用中。

看起来hellofirebase-a1794是您的项目名称或它的根目录,因此您无需在.ref()之后给孩子。

您可以通过以下方式获得数据库参考:

var commentsRef = firebase.database().ref();

然后,您可以从commentsRef获取数据。

此代码用于 Node.js

 const { getDatabase, ref, onChildAdded } = require('firebase/database'); const db = getDatabase(); onChildAdded(ref(db, 'compliments/received/' + currentUser._id), (snapshot) => { console.log(snapshot.val()) })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM