2014-04-17 1 views
5

처음으로 설정하지 않고도 서버 시간을 얻을 수있는 방법이 있습니까? 서버 시간을 반환합니다먼저 firebase 서버 시간을 설정하지 않고 검색하십시오.

curl -X PUT -d '{".sv": "timestamp"}' https://SampleChat.firebaseIO-demo.com/servertime.json 

을, 그러나 이것은 내 중포 기지 인스턴스 내에서 값 servertime을 설정 : 예를 들어, 나는 간단하게 할 수 있습니다. 나는 REST API를 사용하고 있음에 유의해야한다.

+0

중포 기지가 클라이언트 간 통신에 관한 모든 것입니다. 나는 그것이 현재 서버 측 시간을 노출한다고 생각하지 않는다. –

+0

@FrankvanPuffelen Firebase에 입력 한 항목에 대해 위의 JSON을 사용하거나'Firebase.ServerValue.TIMESTAMP' (https://www.firebase.com/docs/managing-presence.html 참조)를 사용할 수 있습니다. 잘 할 수 있지만 실제로 서버 시간을 쓰고 싶지 않아, 단지 그것을 얻고 싶다. 위의 솔루션은 잘 작동하지만, 값을 쓰거나 삭제할 필요없이이를 수행 할 수 있기를 원합니다. – Prisoner

+0

나는 똑같은 문제에 직면했다. 그리고 서버가 실제 타임 스탬프로 바꿀 때 자리 표시자를 놓고 듣는 것보다는 더미 타임 스탬프 필드가 필요해 보인다. 여러 명의 사용자 또는 앱이 요청할 경우 경쟁자가 될 수 있기 때문에 각 사용자마다 더미 필드 여야합니다. – webduvet

답변

6

당신은 .info/serverTimeOffset를 사용하여 작성하지 않고 서버 시간을 검색 할 수 있습니다

var fbRef = new Firebase(URL); 

var getServerTime = (function(ref) { 
    var offset = 0; 
    ref.child('.info/serverTimeOffset').on('value', function(snap) { 
     offset = snap.val(); 
    }); 

    return function() { 
     return Date.now() + offset; 
    } 
})(fbRef); 

var now = getServerTime(); 
+0

REST API를 사용할 때이 값은 무엇입니까? 나는 https://xxxxx.firebaseio.com/.info/serverTimeOffset.json을 가정 하겠지만'invalid path'를 준다. – Prisoner

+0

REST API afaik를 통해 사용할 수 없다. – Kato

+0

그게 내가 생각한 것입니다. (저는 firebase 서버 시간을 기준으로 15 분 후에 오래된 항목을 자동으로 지우는 서비스를 사용하고 있습니다). – Prisoner

관련 문제