2016-11-10 3 views
0

을 사용하여 데이터를 검색하려고합니다.. 배열의 모든 데이터를 하나의 타임 스탬프에서 다른 타임 스탬프로 검색합니다. 여기 중포 기지timestamp 타임 스탬프로 데이터를 검색

하는 상기 코드 관련
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); 

enter image description here

. 그리고 currenTime에서 lastSeenValueFromNode로 데이터를 쿼리합니다. 여기서 lastSeenValueFromNode는 사용자가이 노드를 마지막으로 방문했을 때 타임 스탬프를 포함합니다.

+0

당신이 갇혀있는 곳의 코드를 보여줄 수 있습니까? –

+0

var messageOfEachUser = firebase.database(). ref(). 자식 ("메시지"). 하위 (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

[edit your question] (http://stackoverflow.com/posts/40522288/edit) 코드를 포함 시켜서 포맷 할 수 있도록하십시오. –

답변

0

여기서는 사용자 firebase.database.ServerValue.TIMESTAMP을 사용할 수 없습니다. 실제로 마커 값입니다. 작업이 서버에 도달하면 실제 타임 스탬프로 변환됩니다. 당신이 타임 스탬프를 사용하고 있기 때문에

, 당신은 단순히 대략적인 예상으로 현지 시간을 사용할 수 있습니다 또는

var currentTime = Date.now(); 

, 당신이 사용할 수있는 중포 기지의 대기 시간이 검출 값에 내장 ServerValue.TIMESTAMP에 가까운 값을 얻을 :

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

고맙습니다. 나는 그것을 지금 시험 할 것이다. –

관련 문제