javascript - 如何在 Firebase 值事件上设置监听器?

标签 javascript node.js firebase raspberry-pi firebase-realtime-database

如何使用 Node.js 正确设置 Firebase 的值事件监听器?

我正在通读 Firebase's documents , 并且已经成功地能够从我的 Mac 和同时运行的 Raspberry Pi 更新我的 Firebase 数据库中的表和行,连接到同一个 Firebase 数据库;但是,我无法理解我需要对这个部分做什么才能让一个值事件成为监听器:

var starCountRef = firebase.database().ref('posts/' + postId + '/starCount');
starCountRef.on('value', function(snapshot) {
    updateStarCount(postElement, snapshot.val());
});

对我来说显然我需要以某种方式需要根据输出定义postElement:

FIREBASE WARNING: Exception was thrown by user callback. ReferenceError: postElement is not defined

但是,我不知道 postElement 应该是什么,也不知道如何定义它。帮忙!

我制作了一个非常小的程序和表格来简单地更新/更改值。我将程序更改为当一行更改时我可以看到控制台输出。

这是我的小用户数据变量,只是告诉你我现在要更改的数据有多少:

var user = {
    id:Number,
    name:String,
    number:Number
};

var users = [user];

这是我对文档代码的更改,因此我可以在 Node.js 运行时在控制台输出中看到一些内容:

var userRef = firebase.database().ref('/users/user' + users[0].id);
userRef.on('value', function(snapshot){
    firebase.app.updateUserInfo(postElement, snapshot.val());
    console.log('Users' + users[0].name + ' changed.');//<- this is the line I added.
});

注意:updateStarCount 函数来自 Firebase 文档中的示例,对那里的示例有意义,我谨慎地假设更新本地 Firebase 数据库...

注意 2:如果 updateStarCount 正在做一些其他的魔术,那么它是 Firebase 的一个文档缺陷,因为函数没有在那里定义。非常感谢任何澄清此文档的帮助。

最佳答案

为了使这个问题对其他研究相同问题的人有所帮助,这里有一个扩展的示例,其中缺少定义的函数和变量:

// some HTML element on the page
var postElement = document.getElementById("postElement");

// here I will assume that this function simply 
// updates the contents of the element with a value
var updateStarCount = function(element, value) {
    element.textContent = value;
};

var starCountRef = firebase.database().ref('posts/' + postId + '/starCount');
starCountRef.on('value', function(snapshot) {
    updateStarCount(postElement, snapshot.val());
});

使用此 JavaScript,您可以假设 HTML 页面如下所示:

<html>
  <body>
    <div id="postElement"></div>
  </body>
</html>

关于javascript - 如何在 Firebase 值事件上设置监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41323556/

相关文章:

ios - 一次在 Firebase 中填充 UITableView 一组单元格

javascript - css 类属性不适用于用 javascript 生成的 html 代码

javascript - 对对象属性的图像 onload 调用

php回调函数到下一页

javascript - 如何从 jquery 的 hover 函数中获取 <li> 的值?

swift - 在 Firebase 中遍历电子邮件 - Swift

node.js - Sequelize .update() 总是返回 [0]

javascript - slim /工兵 : Body empty on POST

javascript - node/express 强制浏览器使用自定义名称下载文件

android - 无法解析 com.google.android.gms :play-services-measurement-base:[18. 0.0]