对于在Google Cloud函数中生成服务器端时间戳,文档似乎倾向于使用admin.firestore.FieldValue.serverTimestamp()
。
但也有一个选项,使用import {Timestamp} from "firebase-admin/firestore"
有一个功能Timestamp.now()
。似乎比使用admin.firestore.FieldValue.serverTimestamp()
更容易在服务器上获得当前时间。你会得到相同的时间吗?
Firestore时间戳是在数据库服务器上修改/创建文档时生成的。其他时间戳也可以用于逻辑,但它们是独立于Firestore时间戳的。
ref.set({
createdAt: firebase.firestore.FieldValue.serverTimestamp()
})
不能保证执行Cloud Function的服务器上的时间戳与数据写入数据库时的时间戳完全相同。
这两个操作发生在不同的机器上,所以即使时钟完全同步,在不同机器上执行操作之间也会有时间间隔。当机器处于不同的区域时,这个时间差可能很重要。
这个级别的差异当然可能对您的应用程序不重要,但这是只有您才能确定的事情。我建议在你的项目中测量这两个值之间的差异,然后再决定。