2

Я пытаюсь создать правило базы данных Firebase, которое запрещает пользователям писать любой узел, который имеет временную метку, созданную до 00:00:00 сегодняшнего дня.Правило базы данных Firebase, которое сравнивает временную метку с 00:00:00 сегодняшнего дня?

Пример базы данных:

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

Правила:

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

Я знаю о 'сейчас' ключевое слово, но я не думаю, что это помогает мне. Мне нужен способ сравнить временную метку со значением для 00:00:00 сегодняшнего дня.

Я мог бы создать и сохранить таблицу со всеми временами эпохи 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

Ничего себе .... отличный ответ! Никогда об этом не думал. Я думаю, что у нас был аналогичный вопрос, который оказался «невозможным без сервера». :-( –

Смежные вопросы