2014-04-17 3 views
5

क्या इसे पहले सेट किए बिना सर्वर समय प्राप्त करने का कोई तरीका है? उदाहरण के लिए, मैं बस कर सकते हैं:इसे पहले सेट किए बिना फ़ायरबेस सर्वर समय पुनर्प्राप्त करें

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

जो सर्वर समय वापस आ जाएगी, लेकिन यह मेरा firebase उदाहरण के भीतर मूल्य servertime सेट। मुझे ध्यान रखना चाहिए कि मैं आरईएसटी एपीआई का उपयोग कर रहा हूं।

+0

Firebase ग्राहक करने के लिए ग्राहक संचार के बारे में सब है। मुझे नहीं लगता कि यह वर्तमान में अपने सर्वर-साइड टाइम का खुलासा करता है। –

+0

@ फ्रैंकवनपफेलन यह करता है, फायरबेस में प्रविष्टियों के लिए आप ऊपर 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 मानता हूं लेकिन यह 'अमान्य पथ ' – Prisoner

+0

देता है REST API, afaik के माध्यम से उपलब्ध नहीं है। – Kato

+0

यही मैंने पाया है (मैं फायरबेस सर्वर समय के आधार पर 15 मिनट के बाद स्वचालित रूप से पुरानी प्रविष्टियों को साफ़ करने के लिए एक सेवा का उपयोग कर रहा हूं)। – Prisoner

संबंधित मुद्दे

 संबंधित मुद्दे