Firebase实时数据库。有没有办法设置记录创建的时间戳?

时间:2019-07-17 14:03:34

标签: firebase firebase-realtime-database

我正在尝试设置数据库中记录创建的时间戳

例如:I POST(通过Firebase Realtime Database REST API)对象

{"name": "Name", "last_name": "LastName" }

然后我可以在控制台中看到

{"name": "Name", "last_name": "LastName", "time_stamp": 1563371542446 }

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是为此

Clock Skew

  

虽然Firebase.ServerValue.TIMESTAMP更准确,并且   对于大多数读/写操作而言更可取,它有时可能对   估计客户端相对于Firebase服务器的时钟偏斜。我们   可以将回调附加到位置/.info/serverTimeOffset   获取Firebase客户端将添加到的值(以毫秒为单位)   当地报告的时间(以毫秒为单位的时间)来估算   服务器时间。请注意,此偏移量的精度可能受以下因素影响:   网络延迟,因此主要用于发现大型   (> 1秒)时钟时间差异。

您可以通过以下方式实现

var offsetRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/.info/serverTimeOffset");
offsetRef.on("value", function(snap) {
  var offset = snap.val();
  var estimatedServerTimeMs = new Date().getTime() + offset;
});

答案 1 :(得分:0)

解决方案是像这样发布json:

{  
   "server_timestamp":{  
      ".sv":"timestamp"
   },
   "name":"Name",
   "email":"Name@gmail.com"
}

并且记录出现在控制台中:

{  
   "server_timestamp":1563376669445,
   "name":"Name",
   "email":"Name@gmail.com"
}