在Firestore中,您可以将日期时间存储为其专有的"日期"格式为自1970年以来的毫秒数。第一种方法要求您专门调用toDate()
方法将其转换为Date,但第二种方法已经被广泛接受为存储日期的一种方式。当两种方法提供相同的功能时,使用第一种方法是否有任何优势?
我想你指的是FirestoreServerTimestamp
。关于这个话题,Doug在这里写了一篇很棒的文章
总结如下:Firestore时间戳在服务器端计算,确保它捕获服务器接收请求的准确时刻。因为它是在服务器上计算的,所以编写安全规则也很容易,而不用担心最终用户在请求中操纵他们提交的时间戳。
Firestore的Timestamp
类型具有微秒(而不是毫秒)精度,并且(正如Huydra在他们出色的回答中所说)可以由服务器自动设置为当前值。
通常,微秒和毫秒的精度不是什么大问题,但是让服务器设置/验证当前时间的能力意味着你不再需要依赖客户端来发送准确的时间(实际上:他们不会)。