angularfire将数据时间戳检索到时间戳

时间:2016-11-10 07:42:17

标签: javascript firebase firebase-realtime-database angularfire

我正在尝试使用 angularfire 检索数据.I.e将数组中的所有数据从一个时间戳检索到另一个时间戳。

enter image description here

var messageOfEachUser =firebase.database().ref().child("messages").child(data.key);
var currentTime = firebase.database.ServerValue.TIMESTAMP;
var query = messageOfEachUser.queryOrderedByChild("time").queryStartingAtValue(currentTime).queryEndingAtValue(lastSeenValueFromNode);

var listOfNewMessages = $firebaseArray(query);
console.log(listOfNewMessages);

这里是上面代码连接到firebase。并且将数据从currenTime查询到lastSeenValueFromNode,其中lastSeenValueFromNode包含上次用户访问此节点时的时间戳。

1 个答案:

答案 0 :(得分:0)

您不能以此处的方式使用firebase.database.ServerValue.TIMESTAMP。它实际上只是一个标记值,当您的操作到达服务器时,它将被转换为实际的时间戳。

由于您使用的是时间戳,因此您只需将本地时间用作粗略估算值:

var currentTime = Date.now();

或者,您可以使用Firebase的内置延迟检测值,并获得更接近ServerValue.TIMESTAMP的值:

var offsetRef = firebase.database().ref(".info/serverTimeOffset");
offsetRef.on("value", function(snap) {
  var offset = snap.val();
  var currentTime = Date.now() + offset;
});