Правила Firestore: Разрешить или ограничить запрос только один раз каждые 24 часа? - PullRequest
0 голосов
/ 27 февраля 2019

Есть ли собственный или эффективный способ ограничить пользователя загружать документ из коллекции только один раз каждые 24 часа?

//Daily Tasks
//User should have only read rights
//User should only be able to read one document every 24h

match /tasks/{documents} {
allow read: if isSignedIn() && request.query.elapsedHours > 24;
}

Я думал, что смогу сделать это, используя метку времени в пользовательском документе .Но это потребовало бы ненужных ресурсов записи для записи в пользовательский документ при каждом запросе документа задачи .Поэтому, прежде чем я сделаю это таким образом, я хотел выяснить, есть ли у кого-нибудь лучший подход.

Есть идеи?Большое спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

Нет собственного решения, потому что правила безопасности не могут записывать обратно в базу данных, чтобы сделать запись запроса.

Вместо этого вы можете принудительно получить доступ через бэкэнд (например, облачные функции), который такжезаписывает время доступа конкретного аутентифицированного пользователя и сравнивает его с каждым разом.Обратите внимание, что при каждом вызове будет требоваться дополнительный документ.

...