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

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包含时间戳。
发布于 2016-11-10 12:00:30
您不能以您在这里所做的方式使用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;
});https://stackoverflow.com/questions/40522288
复制相似问题