Как обезопасить данные, используя Firestore rules.duration & rules.timestamp? - PullRequest
0 голосов
/ 19 декабря 2018

Решение JS / Node.js:

Как использовать rules.duration и / или rules.timestamp Firestore или другие правила Firestore для обеспечения возможности ежедневного создания документа?

Putиначе, пользователь будет создавать, например, комментарий / замечание / твит не чаще одного раза в день?Итак, как применить правила безопасности Firestore?

Например, в понедельник (24 декабря 2018 г.) я мог бы написать новый комментарий.Вторник (25 декабря 2018 г.) Я мог бы написать еще один новый комментарий.Но если бы я должен был написать 2-й новый комментарий во вторник (25 декабря 2018 года), он бы НЕ позволил.

Решение должно быть в состоянии работать ежедневно, еженедельно, ежемесячно или ежеквартально.

1 Ответ

0 голосов
/ 19 декабря 2018

В правилах безопасности отсутствует ощущение времени, за исключением текущего момента времени, когда произошел некоторый доступ, и других отметок времени в других документах.Таким образом, вам придется использовать временные метки в других документах для доступа к воротам.

Единственный способ, которым я могу придумать, - это использовать облачные функции.Вы можете иметь один документ на пользователя, который действует как место для записи новых данных.Правила этого документа проверяют, что пользователь делает две вещи:

  1. Запись текущего времени (метки времени сервера) в известное поле.
  2. Текущее время также не меньше, чемразрешенное время с момента последней записи этого поля.

Когда запись успешна, облачная функция может инициировать эту запись, а затем скопировать данные записи из других полей этого документа в окончательный документгде сообщение должно жить.

Или вы могли бы немного упростить вещи, пропустить правила безопасности и просто использовать облачную функцию, которая удаляет входящие документы, которые не удовлетворяют вашим правилам частоты публикации, выполняя запросы для большинства двухпоследние сообщения от этого пользователя и проверка их временных отметок.

...