firebase.database.ServerValue.TIMESTAMP两次触发child_changed,哪一个是正确的?

时间:2016-11-28 20:25:28

标签: javascript firebase firebase-realtime-database

在ref中设置firebase.database.ServerValue.TIMESTAMP时,child_changed被调用两次,是一个本地调用,另一个是实际服务器时间吗?

我正在使用:

处理双重调用
ref.once...

打电话,我想知道是否只抓住第一个child_change是不正确的?如果是这样,如何只处理第二次通话?感谢。

编辑:

//If once is the local time, how do I only do something
//with the second child_changed call?
ref.once("child_changed", function(snapshot) {
   console.log(snapshot.val());
   //do something with snapshot.val().fbTime;
});

ref.push({"fbTime": firebase.database.ServerValue.TIMESTAMP});

编辑#2:

//Using .on instead of .once, this listener only fires once.
//Is this the local estimate?
ref.on("child_changed", function(snapshot) {
   console.log(snapshot.val());
   //do something with snapshot.val().fbTime;
});

//causes "child_changed" to be fired once.
ref.push({"fbTime": firebase.database.ServerValue.TIMESTAMP});

编辑#3:

修复了ref对象的关键语法。

1 个答案:

答案 0 :(得分:0)

最后一个是正确的。 第一个是本地时间和服务器之间的近似延迟 第二个是实际正确的。

请在下面找到注释:

https://github.com/firebase/firebase-js-sdk/issues/2461