Firebase 服务器的时间戳计算

Timestamp calculations at Firebase server

是否可以并建议在需要考虑时间戳计算的 Firebase 服务器上定义写入规则?

例子

场景:用户正在尝试向现有话题添加新评论。

写入规则:如果当前时间介于 Thread.openAtTimestamp 和 Thread.closesAtTimestamp 之间,则只能将评论添加到现有线程。

例如,使用 momentjs 可以很容易地解决这个问题。但我猜 momentjs 库在 Firebase 规则中不可用?

假设你有这个数据结构:

threads
    $threadid
        openAtTimestamp: 1453820367233
        closesAtTimestamp: 1454425139712
comments
    $threadid
        $commentid
            author: "Ismar Slomic"
            timestamp: 1454425139711

然后,如果 timestamp 介于该线程的 openAtTimestampclosesAtTimestamp 之间,则您只能在该线程中发表评论。

{
 "rules": {
  "comments: {
   "$threadid": {
    "$commentid": {
     "timestamp: {
      ".validate": "
       newData.val() > root.child('threads').child($threadid).child('openAtTimestamp') && 
       newData.val() < root.child('threads').child($threadid).child('closesAtTimestamp')
    }
   }
  }
 }
}

这只是帮助您入门的粗略大纲。 Firebase documentation on security rules 有更多信息。