gpt4 book ai didi

Firebase 服务器时间戳与本地(几乎)相同

转载 作者:行者123 更新时间:2023-12-03 04:13:20 27 4
gpt4 key购买 nike

当我获得与本地时间相同的时间戳时,firebase 生成的服务器时间戳是否会自动转换为本地时间,或者我错过了什么?

_firestore.collection("9213903123").document().setData(
{
"title": title,
"message": message,
"deviceTimeStamp": DateTime.now(),
"serverTimeStamp": FieldValue.serverTimestamp(),
},
);
运行上述语句后,我可以看到 devicetimestamp 和 serverTimeStamp 是相同的。
但是他们的seocons略有延迟。
Data In firestore...

deviceTimeStamp
8 August 2020 at 16:39:08 UTC+5:30
(timestamp)
message
"26"

serverTimeStamp
8 August 2020 at 16:39:16 UTC+5:30
title
"26"
我要做的事情基本上是根据日期时间进行排序,用户可以看到他何时创建了笔记,但是如果有人创建了笔记并将其存储到世界任何地方的火库中(无论位置如何)。威尔,他/她通过使用服务器时间戳来获取他们的本地时间(因为我想要这个,所以用户可以看到他们何时添加了他们的文档)。并且为了安全起见,我想使用服务器时间戳,所以如果设备与当前时间不同步。

最佳答案

Firestore的FieldValue.serverTimestamp()创建时间戳并将其存储在 UTC Epoch time目前请求到达 Firestore 服务器。
调用serverTimestamp()调用时不会创建时间戳,也不依赖于用户的设备时间或时区。相反,它创建了可以被认为是日期/时间的占位符。仅当 Firebase 服务器收到请求后,此占位符才会转换为时间戳。因此,Firestore 时间戳将始终至少稍晚于您的客户端日期/时间(假设客户端时间完全同步。)
使用 Firestore 的时间戳通常可以满足您以一致的方式为世界各地的用户存储日期/时间、按创建时间检索/排序笔记以及将时间戳转换为用户本地时区客户端的目标。但是,您可能希望在用户离线时处理稍有不同的情况。
参见 Doug Stevenson 的 article有关 Firestore 时间戳的有用、更详细的说明。

关于Firebase 服务器时间戳与本地(几乎)相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63314796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com