Как ограничить число пользователей, пишущих сообщения, каждые 15 минут в базе данных реального времени firebase - PullRequest
0 голосов
/ 25 декабря 2018

Я использую базу данных Firebase в реальном времени.

Я пытаюсь ограничить пользователей, чтобы они могли публиковать сообщения только через 15 минут после их последнего сообщения (это предотвращает появление сообщений, похожих на чат).

Как бы мне этого добиться?

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

Какой алгоритм я могу реализовать?

Спасибо, счастливого Рождества!

Ответы [ 2 ]

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

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

  1. Метка времени для пользователя была указана только с ServerValue.TIMESTAMP
  2. Временная метка для каждого пользователя, по крайней мере, на 15 минут позже существующего значения (или, если она не существует, пропустите эту проверку)
  3. Также была указана собственная временная метка сообщения, чтобы иметь такую ​​жезначение
0 голосов
/ 25 декабря 2018

Вы можете создать новое поле для хранения сообщения от пользователя

 User {
   . . . , 
  PostHistory{
 Post1: [timestamp],
 Post2: [timestamp]
 . . . 
 },
 }

И затем каждый раз, когда пользователь создает новое сообщение, вы можете проверить его с помощью postHistory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...