2

今日の00:00:00より前に作成されたタイムスタンプを持つ任意のノードに書き込みを禁止するFirebaseデータベースルールを作成しようとしています。今日のタイムスタンプと00:00:00を比較するFirebaseデータベースルール?

データベースの例:

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

ルール:

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

私は '今' キーワードについて知っているが、私はそれが私を助けないと思います。タイムスタンプと今日の00:00:00の値を比較する方法が必要です。

futuremの各日の真夜中のすべてのunixエポック時刻のテーブルを作成して保存することはできますが、その場で計算する方法はありませんか?

答えて

4

これはそれを行う必要があります。

{ 
    "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)))

+0

ありがとう!どのように私はそのことを考えていないか分からない –

+0

うわー....素晴らしい答え!私はそれを考えなかった。しばらく前に似たような質問があったと思いますが、それは「サーバーなしでは不可能」ということでした。 :-( –

関連する問題