2014-04-17 15 views
5

Có cách nào để lấy thời gian máy chủ mà không phải đặt trước không? Ví dụ, tôi chỉ đơn giản có thể làm:Truy xuất thời gian máy chủ Firebase mà không cần đặt trước

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

đó sẽ trở lại với thời gian máy chủ, nhưng điều này đặt giá trị servertime trong dụ căn cứ hỏa lực của tôi. Tôi nên lưu ý rằng tôi đang sử dụng API REST.

+0

căn cứ hỏa lực là tất cả về giao tiếp client-to-client. Tôi không nghĩ rằng nó hiện đang phơi bày thời gian phía máy chủ của nó. –

+0

@FrankvanPuffelen Có, đối với các mục nhập vào firebase, bạn có thể sử dụng JSON ở trên hoặc sử dụng 'Firebase.ServerValue.TIMESTAMP' (xem: https://www.firebase.com/docs/managing-presence.html) - mà tôi có thể làm tốt nhưng tôi không muốn thực sự viết thời gian máy chủ, tôi chỉ muốn có được nó. Các giải pháp trên hoạt động tốt, tôi chỉ muốn có thể làm điều đó mà không cần phải viết/xóa các giá trị. – Prisoner

+0

Tôi đã phải đối mặt với cùng một vấn đề và có vẻ bạn chỉ cần trường dấu thời gian giả, nơi bạn đặt giữ chỗ và lắng nghe nó khi máy chủ thay đổi nó thành dấu thời gian thực. Nếu bạn có nhiều người dùng hoặc ứng dụng yêu cầu nó phải là trường giả cho mỗi người trong số họ vì họ có thể cạnh tranh cho một. – webduvet

Trả lời

6

Bạn có thể lấy lại thời gian máy chủ mà không cần viết nó bằng cách sử dụng .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

Giá trị này sẽ là gì khi sử dụng REST API? Tôi giả sử https://xxxxx.firebaseio.com/.info/serverTimeOffset.json nhưng nó cung cấp 'đường dẫn không hợp lệ ' – Prisoner

+0

Không có sẵn thông qua REST API, afaik. – Kato

+0

Đó là những gì tôi đã tìm thấy (Tôi đang sử dụng dịch vụ để xóa các mục cũ tự động sau 15 phút dựa trên thời gian máy chủ Firebase). – Prisoner

Các vấn đề liên quan