Я хотел бы установить значение для базы данных Firebase в True только на определенное время - PullRequest
0 голосов
/ 20 ноября 2018

Я не могу понять, как изменить значение базы данных Firebase, а затем вернуть его обратно через определенное время (30 минут), делая все на стороне сервера, а не к фактической дате устройства.

Я предполагаю, что мне нужны функции Firebase.

Если я не могу этого сделать, есть ли другой способ сохранить Firebase в качестве основной базы данных?

Мне не нужнолюбой код, но только логика за ним.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

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

Например, если ваша модель данных в настоящий момент имеет вид:

Permissions
- user_id
- is_allowed (boolean)

Возможно, вы захотите использоватьэто вместо этого:

Permissions
- user_id
- allow_until (timestamp)

Ваш код приложения может просто проверить, является ли текущее время раньше, чем отметка времени allow_until.

0 голосов
/ 20 ноября 2018

В базе данных Firebase Realtime нет логики для автоматического изменения значения через определенный промежуток времени.Обычно вы запускаете такой код в облачных функциях или в приложениях на ваших клиентских устройствах.

В обоих случаях вы можете продолжать использовать базу данных Firebase Realtime, поскольку вы просто будете с ней взаимодействовать.В облачных функциях вы будете делать это через Admin SDK.

Это несколько шагов:

  1. Создание облачной функции, которая запрашивает базу данных, чтобы найти элементы с истекшим сроком действия, именяет значение на них.Этот код использует Admin SDK для Node.js, но очень похож на то, что вы в противном случае выполняли бы в веб-клиенте.

  2. Свяжите эту облачную функцию с заданием cron, которое запускается каждыйминута или около того (в зависимости от того, насколько точным вы хотите быть время ожидания).Для некоторых опций см. Облачные функции для триггера Firebase по времени?

Я также рекомендую вам проверить следующие похожие вопросы:

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