【问题标题】:Firebase Database Rule that compares timestamp to 00:00:00 of today?将时间戳与今天的 00:00:00 进行比较的 Firebase 数据库规则?
【发布时间】:2017-04-30 07:44:37
【问题描述】:

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

数据库示例:

{
    "messageID": { 
        "message": "blabla",
        "timestamp": 1481744636
    }
}

规则:

{
    "rules": {
        "$messageID": {
            ".write": "data.child('timestamp').val() > ???"
        }
    }
}

我知道“现在”关键字,但我认为它对我没有帮助。我需要一种方法来将时间戳与今天的00:00:00 的值进行比较。

我可以创建并存储一个表,其中包含未来每天午夜的所有 unix 纪元时间,但没有办法即时计算它吗?

【问题讨论】:

    标签: javascript json firebase firebase-realtime-database firebase-security


    【解决方案1】:

    应该这样做:

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

    86,400,000 是 24 小时内的毫秒数,因此 now % 86400000 应该为您提供自 00:00:00 UTC 以来的毫秒数。

    console.log(new Date(Date.now() - (Date.now() % 86400000)))

    【讨论】:

    • 谢谢!不知道我怎么没想到
    • 哇....很好的答案!我从来没想过这点。我想我们不久前有一个类似的问题,最终“没有服务器就不可能”。 :-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多