如何从firestore的fieldvalue.servertimestamp()中减去24小时?

dfuffjeb  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(306)

我需要把两个值传递给 Firebase Cloud Function 第一个是 current Timestamp 第二个是
Timestamp 24 hrs 回来。
我正在使用 FieldValue.serverTimestamp() ,但是如何从中减去24小时呢 FieldValue.serverTimestamp() ?
我需要和你一样格式的最终结果 FieldValue.serverTimestamp() .
我的全部代码都是用java编写的
如果有其他的解决方案,请参考它,但主要的是,我想执行一个服务器时间戳上的操作

yks3o0rb

yks3o0rb1#

无法在上执行日期计算 FieldValue.serverTimestamp() 直接。它返回一个静态令牌值(根本不是timestamp对象),在写入时在服务器上进行解释。
如果要计算相对于服务器时间戳值的某个时间,则必须:
写下 FieldValue.serverTimestamp() 将其作为时间戳对象从文档中读回
对时间戳的组件值(秒)执行时间数学,以创建具有所需时间的新时间戳
将新的时间戳写入文档

jvlzgdj9

jvlzgdj92#

谢谢你的帮助,但找到了另一个解决办法。我不确定这是不是正确的方法,但它对我很有效。 Date currentTime = new Date(Timestamp.now().getSeconds() * 1000); Date currentTime24hrsBack = new Date(Timestamp.now().getSeconds() * 1000 - 24 * 60 * 60 * 1000); new Timestamp(currentTime24hrsBack).toDate() new Timestamp(currentTime24hrsBack).toDate() import com.google.firebase.Timestamp;

相关问题