Google cloud firestore Firestore:获取用于进行客户端时间比较的服务器时间戳值

Google cloud firestore Firestore:获取用于进行客户端时间比较的服务器时间戳值,google-cloud-firestore,Google Cloud Firestore,我从Firestore检索到一个文档,其中有一个日期字段X。我想知道X是否是未来的日期。如何从浏览器中使用JavaScript实现这一点 如果我能得到一个服务器端的时间戳,然后在浏览器中比较X>S,这将是最好的?我怎样才能得到S 我知道在上传文档和执行查询时,我已经使用了服务器时间戳的占位符值,但我希望这里的时间戳有一个具体的值。要获得服务器时间的估计值,只需编写一个包含服务器时间哨兵令牌作为值的字段的文档,然后立即读回文档并查看服务器实际写入的时间戳。然后当然要删除文档。问题是,应用程序和服务

我从Firestore检索到一个文档,其中有一个日期字段X。我想知道X是否是未来的日期。如何从浏览器中使用JavaScript实现这一点

如果我能得到一个服务器端的时间戳,然后在浏览器中比较X>S,这将是最好的?我怎样才能得到S


我知道在上传文档和执行查询时,我已经使用了服务器时间戳的占位符值,但我希望这里的时间戳有一个具体的值。

要获得服务器时间的估计值,只需编写一个包含服务器时间哨兵令牌作为值的字段的文档,然后立即读回文档并查看服务器实际写入的时间戳。然后当然要删除文档。

问题是,应用程序和服务器之间的每次往返都会产生一些未知的延迟。所以,如果你想要一个“精确的”服务器时间,你就不走运了,因为你不知道任何一个给定的呼叫在两个方向上花费了多少时间。我建议您找到其他方法来做您想做的事情,除非您愿意猜测服务器的时间感到底是什么。或者,你可以假设客户端的时钟足够近,这几乎是所有应用程序都能做到的。@DougStevenson我只需要几个小时甚至一天的准确度。一点延迟并不重要。这可能很少见,但如果可能的话,我宁愿不依赖客户端时钟,因为如果时钟错得太多,应用程序逻辑中会发生奇怪的事情。有没有办法获取服务器时间戳?嗯,这似乎不太实际,因为它会耗尽我的Firestore配额。这只是一个想法,但是是否有可能以某种方式从JWT令牌或那些使用客户端计时器的令牌中获得准确的日期?也许您可以获取刷新令牌的到期日期,该令牌应该每小时更新一次?您只需要为每个客户端执行一次并保留结果,除非您对人们更改时钟心存疑虑。因此,我正在查看firebase.auth().currentUser.getIdTokenResult()issuedAtTime/expirationTime时间似乎基于服务器端时钟(我尝试更改时钟以确认这一点)。我可以依赖这些时间和这个API吗?我不确定这些是不是每小时更新的刷新令牌值。如果没有更好的选择,我可以考虑文档写作解决方案。我不知道。你现在已经远远超出了原来问题的范围。