在Firebase函数中,是否可以使用firebase-admin.firebase.Timestamp()来代替FieldValue.serverTimestamp()?

vkc1a9a2  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(108)

对于在Google Cloud函数中生成服务器端时间戳,文档似乎倾向于使用admin.firestore.FieldValue.serverTimestamp()
但是也有一个选项可以使用import {Timestamp} from "firebase-admin/firestore",它有一个函数Timestamp.now()。看起来比使用admin.firestore.FieldValue.serverTimestamp()更容易在服务器上获得当前时间。你最终得到的时间是相同的吗?

gudnpqoy

gudnpqoy1#

Firestore时间戳是在数据库服务器上修改/创建文档时生成的。其他时间戳可以用于逻辑,但这些时间戳独立于Firestore时间戳。

ref.set({
    createdAt: firebase.firestore.FieldValue.serverTimestamp()
})
khbbv19g

khbbv19g2#

无法保证执行云函数的服务器上的时间戳与数据写入数据库的时间完全相同。
这两个操作发生在不同的机器上,所以即使时钟完全同步,在这些不同的机器上执行操作之间也会有时间。当机器位于不同的区域/地区时,时间差可能很大。
当然,这种程度的差异对您的应用程序来说可能并不重要,但这是只有您才能确定的。我建议您在决定之前测量项目中两个值之间的差异。

相关问题