我正在开展审查/评论流程,并希望能够将用户为另一个用户提供的每条评论/评论存储在 firebase 中,同时给出的每条评论/评级都在相同的时间戳下。我最初使用的是 JS 函数 new Date().getTime() ,这很好用,但是为了确保用户不能篡改该值(即通过更改他们计算机上的日期),我想使用 firebase 时间戳反而。
现在,我希望最终产品是一张地图:
[chatStartTime] : {
review : stars,
time : chatStartTime
}
然后我使用 transaction.set() 将其合并到 firebase 文档中。现在问题是 ChatStartTime,它应该代表这个时间戳。我有代码:
var chatStartTime = firebase.firestore.FieldValue.serverTimestamp();
顺便说一句,我也希望得到:
var chatStartTimeDate = chatStartTime.toDate();
但是 chatStartTimeDate 会导致错误——我的理解是,这是因为 chatStartTime 在添加到文档之前基本上是“无效的”;有没有办法解决这个问题并使用这个功能?此外,如果我只对两个实例都使用 chatStartTime,我最终会在表单的数据库上得到一个地图:
[object Object]
review : 4.5
time :
.sv: "timestamp"
其中 .sv 是字符串类型。我该如何解决这个问题?我希望最终结果看起来像(例如)
1579194722735
review : 4.5
time : 1579194722735