为Firestore serverTimestamp()添加时间

时间:2018-05-28 10:10:23

标签: javascript firebase google-cloud-firestore

有没有办法在不使用云功能的情况下为服务器时间戳添加时间?

我想要的是从面板更新时间戳,并让用户端检查时间戳是否大于当前时间。我还希望面板用户能够设置添加的时间量,因此在用户端执行逻辑不是最佳解决方案。

示例:

document.set({ validTo: firestore.FieldValue.serverTimestamp() + 5000 });

2 个答案:

答案 0 :(得分:4)

您无法在客户端上的服务器时间戳上执行日期数学运算。 FieldValue值只是在服务器上解释的标记。如果您想使用Google服务器时间进行日期数学运算,则必须在Google服务器上运行该逻辑。

如果您绝对需要在客户端上执行此操作,则必须在一次操作中写入时间戳,然后在第二次操作中读取文档,然后在第三次操作中将修改后的日期值写回文档

答案 1 :(得分:0)

我是个很老的新手,这是我读过的第一个问题,在哪里我可以提供一些东西。我真的很感谢我在这里所经历的一切...

您不能更改时间戳,但是可以在创建文档的过程中将时间戳更改为UNIX时间并在服务器端对其进行操作。

ref.add({expires: firebase.firestore.Timestamp.now().toMillis() + 5000})

然后基于的查询从前端过期。可能不理想,但是当您只有前端可以使用时...