2016-11-10 2 views
0

Я пытаюсь получить данные с помощью angularfire. Я получаю все данные в массиве с одной временной метки на другую временную метку.angularfire получение данных timestamp to timestamp

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 содержит отметку времени, когда пользователь посетил этот узел в последний раз.

+0

Можете ли вы показать нам код, в котором вы застряли? –

+0

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. И запросы данных –

+0

Пожалуйста, отредактируйте свой вопрос] (http://stackoverflow.com/posts/40522288/edit) и включите туда код, чтобы вы могли его отформатировать. –

ответ

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; 
}); 
+0

ОК спасибо. Я попробую сейчас –