title: 高级特性

本篇文档介绍 Wilddog Sync 的高级特性,用于实现更丰富的场景需求。

云端时间戳

WilddogSync.getInstance().getReference().getRepo().getServerTime() 用于记录当前 云端时间戳

例如,在servertimestamp 节点下记录当前云端时间:

  1. SyncReference currentServerTimeRef=WilddogSync.getInstance().getReference("servertimestamp");
  2. //存入当前云端时间戳
  3. currentServerTimeRef.setValue(ServerValue.TIMESTAMP)

时钟偏差

/.info/serverTimeOffset 节点用于记录本地时间和云端时间的差值。监听该节点可以获取时钟偏差。

例如,利用时钟偏差可以计算云端时间:

  1. SyncReference connectedRef = WilddogSync.getInstance().getReference(".info/serverTimeOffset");
  2. connectedRef.addValueEventListener(new ValueEventListener() {
  3. @Override
  4. public void onDataChange(DataSnapshot dataSnapshot) {
  5. long offset = (long) dataSnapshot.getValue(Long.class);
  6. long estimatedServerTimeMs=System.currentTimeMillis()+offset;
  7. }
  8. @Override
  9. public void onCancelled(SyncError syncError) {
  10. }
  11. });