为什么在Firestore中servertimestamp和js new Date()之间存在差异?

时间:2018-06-14 07:33:19

标签: firebase google-cloud-firestore firebase-admin

在向Firestore编写文档时,我经常看到serverTimestamp() sentinel和new Date()对象之间的差异不为零。

差异在秒到数十分钟之间。

Aren他们做同样的事情吗?

enter image description here

云功能中的示例代码

docRef.set({
  'date-timestamp': new Date(),
  'server-timestamp': admin.firestore.FieldValue.serverTimestamp(),
}).catch(console.error);

1 个答案:

答案 0 :(得分:1)

他们没有做同样的事情。

serverTimestamp()转换为Google服务器在服务器上收到文档时写入的日期。

无论其他因素如何,

new Date()都会产生客户在创建Date对象时计算的日期。

显然,在您的示例中,客户端和服务器之间的时间估算是不同的。总会有一些差异,因为客户端和服务器之间存在无法避免的延迟。