Firebase数据库规则,将时间戳与今天的00:00:00进行比较?

Dan*_*ict 3 javascript json firebase firebase-security firebase-realtime-database

我正在尝试创建一个Firebase数据库规则,禁止用户写入任何在今天00:00:00之前创建时间戳的节点.

数据库示例:

{
    "messageID": { 
        "message": "blabla",
        "timestamp": 1481744636
    }
}
Run Code Online (Sandbox Code Playgroud)

规则:

{
    "rules": {
        "$messageID": {
            ".write": "data.child('timestamp').val() > ???"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道'now'关键字,但我不认为它对我有帮助.我需要一种方法来比较时间戳和00:00:00今天的值.

我可以在未来的每天午夜创建和存储一个包含所有unix纪元时间的表格,但是有没有办法在飞行中计算它?

car*_*ant 6

这应该这样做:

{
    "rules": {
        "$messageID": {
            ".write": "data.child('timestamp').val() > (now - (now % 86400000))"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

86,400,000是24小时内的毫秒数,因此now % 86400000应该给出自00:00:00 UTC以来的毫秒数.

console.log(new Date(Date.now() - (Date.now() % 86400000)))
Run Code Online (Sandbox Code Playgroud)