如何使用 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/