我正在尝试使用 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包含上次用户访问此节点时的时间戳。
答案 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;
});