为什么 servertimestamp 和 Firestore 中的 js new Date() 有区别?
Why is there a difference between servertimestamp and the js new Date() in Firestore?
在向 Firestore 写入文档时,我经常看到 serverTimestamp()
sentinel 和 new Date()
对象之间的差异不为零。
差异在 几 秒到 几十 分钟之间。
他们不是在做同样的事情吗?
Cloud Functions 中示例的代码
docRef.set({
'date-timestamp': new Date(),
'server-timestamp': admin.firestore.FieldValue.serverTimestamp(),
}).catch(console.error);
他们做的事情不一样。
serverTimestamp()
转换为 Google 服务器计算的日期,即服务器收到文档写入的时间。
new Date()
生成创建日期对象时客户端计算的日期,不考虑任何其他因素。
显然,在您的示例中,客户端和服务器之间的时间计算是不同的。总会有一些差异,因为客户端和服务器之间存在无法避免的延迟。
在向 Firestore 写入文档时,我经常看到 serverTimestamp()
sentinel 和 new Date()
对象之间的差异不为零。
差异在 几 秒到 几十 分钟之间。
他们不是在做同样的事情吗?
Cloud Functions 中示例的代码
docRef.set({
'date-timestamp': new Date(),
'server-timestamp': admin.firestore.FieldValue.serverTimestamp(),
}).catch(console.error);
他们做的事情不一样。
serverTimestamp()
转换为 Google 服务器计算的日期,即服务器收到文档写入的时间。
new Date()
生成创建日期对象时客户端计算的日期,不考虑任何其他因素。
显然,在您的示例中,客户端和服务器之间的时间计算是不同的。总会有一些差异,因为客户端和服务器之间存在无法避免的延迟。