2014-04-17 4 views
5

C'è un modo per ottenere l'ora del server senza doverlo prima impostare? Ad esempio, posso semplicemente fare:Recupera l'ora del server Firebase senza impostarla prima

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

che restituirà l'ora del server, ma questo imposta il valore servertime nel mio esempio Firebase. Devo notare che sto usando l'API REST.

+0

Firebase è tutto sulla comunicazione client-to-client. Non penso che attualmente esponga il suo tempo sul lato server. –

+0

@FrankvanPuffelen Lo fa, per le voci inserite in Firebase puoi usare il JSON sopra o usare 'Firebase.ServerValue.TIMESTAMP' (vedi: https://www.firebase.com/docs/managing-presence.html) - che io può fare bene, ma non voglio davvero scrivere il tempo del server, voglio solo ottenerlo. La soluzione sopra funziona bene, voglio solo essere in grado di farlo senza dover scrivere/cancellare il valore. – Prisoner

+0

Stavo affrontando lo stesso problema e sembra che ti serva solo un campo di timestamp fittizio in cui inserisci segnaposto e che ascolti quando il server lo cambia in data e ora reali. Se hai più utenti o app che lo richiedono, deve essere un campo fittizio per ognuno di essi in quanto possono competere per uno. – webduvet

risposta

6

è possibile recuperare l'ora del server senza scrivere esso utilizzando .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

Quale sarebbe questo valore quando si utilizza l'API REST? Assumerei https://xxxxx.firebaseio.com/.info/serverTimeOffset.json ma che fornisce 'percorso non valido ' – Prisoner

+0

Non disponibile tramite l'API REST, afaik. – Kato

+0

Questo è quello che ho capito (sto usando un servizio per cancellare le vecchie voci automaticamente dopo 15 minuti in base al tempo del server Firebase). – Prisoner