【问题标题】:Firebase ref.on("value" is getting called even without a change in value - node.jsFirebase ref.on("value" 即使没有改变值也会被调用-node.js
【发布时间】:2017-07-15 15:00:00
【问题描述】:

我正在尝试观察我的 firebase 数据库的变化。

这是我的结构

数据库 - 认证:真

我正在我的 node.js 应用程序中像这样监听 Authenticate 的变化

var authRef = firebase.database().ref('Authentication');
      authRef.on('value', function(snapshot) {
              console.log(snapshot.val());
              res.send(snapshot.val());
      });

但只要我调用 authRef.on ,它就会获取以前的值而不是等待更改。

请指教。

【问题讨论】:

  • 正如 Ziya 所说,这是预期的行为。引用documentation:“这个方法在监听器被附加时触发一次,并且在每次数据(包括孩子)发生变化时再次触发。”

标签: node.js firebase firebase-realtime-database


【解决方案1】:

这是 firebase 监听器的本质。
当您创建一个值侦听器时,它将至少获取一次数据。
我会采取以下措施来防止这种情况发生:

var i = 0
var authRef = firebase.database().ref('Authentication');
  authRef.on('value', function(snapshot) {

          if( i != 0){
            console.log(snapshot.val());
            res.send(snapshot.val());
          }
          i++
  });

如果你这样做,它不会考虑第一次调用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2015-02-16
    相关资源
    最近更新 更多