2012-10-23 30 views
9

Chúng tôi có một tập dữ liệu trong Firebase được nhiều khách hàng cập nhật. Chúng tôi muốn theo dõi lần sửa đổi cuối cùng vào ngày giờ của tập dữ liệu. Chúng tôi không thể dựa vào các thiết lập của khách hàng sửa đổi vào ngày giờ như đồng hồ địa phương của họ có thể được hoàn toàn không đồng bộ.Sử dụng đồng hồ Firebase để thay đổi dấu thời gian

Có cách nào tôi có thể có dấu thời gian thẻ Firebase cho tập dữ liệu dựa trên đồng hồ của nó để theo dõi lần sửa đổi cuối cùng không?

Trả lời

5

Chúng tôi đang làm việc trên một số tính năng để hỗ trợ việc này vào lúc này, nhưng chúng tôi không có cách nào để thực hiện việc này ngay bây giờ. Tuy nhiên, lưu ý rằng các ID được tạo bởi "push()" được sắp xếp theo thứ tự thời gian và chúng tôi bù cho đồng hồ ở phía máy khách tốt nhất có thể khi tạo chúng, vì vậy nếu tất cả những gì bạn đang cố gắng làm là đảm bảo ghi vào một danh sách xảy ra theo thứ tự, bạn có thể làm điều đó với push().

Tôi muốn được nghe cách bạn muốn tính năng này trông như thế nào. Nếu bạn có một giây, tôi muốn đánh giá cao một email đến andrew tại firebase ...

Cập nhật: Firebase hiện hỗ trợ cài đặt dấu thời gian máy chủ cũng như truy cập thời gian máy chủ trực tiếp trên máy khách. Xem tài liệu tại đây: https://www.firebase.com/docs/managing-presence.html

+2

Đây là một tùy chọn dễ dàng: firebasePath.setTimestamp() sẽ đặt giá trị của đường dẫn đó thành thời gian của máy chủ BẠN. – oori

+0

@Andrew Lee Tôi nghĩ rằng tính năng được đề xuất bởi oori sẽ rất hữu ích –

+3

Liên kết là khó hiểu; nó chuyển hướng đến https://www.firebase.com/docs/web/guide/offline-capabilities.html, trong đó có phần Quản lý sự hiện diện, nhưng tài liệu có liên quan không nằm trong phần đó nhưng phần Xử lý độ trễ sau đó. Câu trả lời như một toàn thể cũng có thể được làm sạch để loại bỏ các thông tin lỗi thời và chỉ bao gồm những gì trong 'Cập nhật', có lẽ với các chi tiết nổi bật nhất từ ​​các tài liệu. Tôi sẽ dọn dẹp nó khi tôi có một khoảnh khắc tự do; vui lòng tiếp tục và làm như vậy trước. –

0

Chúng tôi đang ở trên cùng một thuyền ... và tôi đoán sớm hay muộn, nhiều khách hàng firebase sẽ gặp phải vấn đề này, vì đó là "loại mới" của sự cố mà chúng tôi chưa bao giờ gặp phải trong "khách hàng-máy chủ" ngày cũ.

Out giải pháp hiện tại (vẫn còn trong làm) là để ước tính chênh lệch thời gian giữa client và server CHÚNG TÔI về khởi tạo, và họ bù đắp,
Vì vậy, - nơi chúng tôi đã có x = new Date(),
bây giờ nó là x = ourDateService.now()

của chúng tôi bây giờ() chức năng chỉ đơn giản là không new Date() + diff

Điều này phù hợp với chúng tôi, vì chúng tôi không cần độ chính xác đến mili giây và đó là ứng dụng một trang tải một lần, vì vậy chúng tôi có thể thực hiện kiểm tra khác và khởi tạoDateService khi tải, nhưng giải pháp này sẽ không hoạt động cho mọi người (ofcourse, bạn có thể lưu trữ nó trong localstorage/cookie và xác nhận lại mỗi ngày hoặc hơn).

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