【发布时间】:2022-07-06 16:24:40
【问题描述】:
我想知道是否有办法直接获取当前服务器时间。
我这样做的方法是编写一个文档并使用FieldValue.serverTimestamp(), 然后再次阅读它。
但是有没有办法知道当前服务器时钟或时间是什么而无需再次写入和读取?
FirebaseFirestore.instance.collection('users').doc(currentUser.uid).update({
'currentTime':FieldValue.serverTimestamp(),
});
由于多种原因,我无法使用客户端时间
【问题讨论】:
-
没有其他办法。如果您不想获取服务器时间,您可以随时将用户本地时间转换为 UTC,它将与服务器上的时间几乎相同。
-
但是如果用户自己更改系统时钟怎么办?
-
这将是他的错。 XD 如果很重要,例如付款或其他什么,只需使用 Firebase 函数在服务器端设置这个时间。
-
如果你能够设置
FieldValue.serverTimestamp()任何你想要的或者有一个你可以使用的函数,你仍然有用户可以改变它的问题。 -
用户不能影响
FieldValue.serverTimestamp(),但他可以在Firebase运行的任何时候发送对象我不确定这是否可能,但使用规则你可以检查是否有FieldValue.serverTimestamp()。
标签: firebase google-cloud-platform google-cloud-firestore