为何Firestore的FieldValue.serverTimestamp()纳秒部分总是以0000结尾?
Firestore 服务器时间戳的纳秒精度问题
FieldValue.serverTimestamp()的纳秒部分是否总是以"0000"结尾?
是的,它的纳秒部分必然以"0000"结尾。因为Firestore的服务器时间戳本质是微秒级精度,存储时会将微秒值乘以1000转换为纳秒格式,所以最后四位固定为0。例如,若服务器生成的时间是1620000000123456微秒,转成纳秒后就是1620000000123456000,末尾四位为0000。Firestore的服务器时间戳是否提供真正的纳秒级分辨率?
不提供。Firestore底层仅支持微秒级的时间精度,所谓的纳秒表示只是微秒值的三位扩展,实际没有纳秒级的区分能力。即便你手动传入带有非零纳秒部分的时间戳,Firestore在存储时也会自动截断到微秒级别,丢弃多余的纳秒信息。
内容的提问来源于stack exchange,提问作者KKimJ
相关产品推荐
相关产品推荐

