это реализовано так: запись, куда и кому платить, сохраняется в firestore. Есть cron функция (* * * * *), которая каждую минуту пробегается по записям в БД (активным контрактам) и совершает платеж. Проблема в том, что если контракт начался, например в 14:30:59 а закончился в 14:31:01 - то деньги за минуты спишутся, хотя прошла лишь секунда (короче крон запускается ровно в 00 секунд, поэтому будут накладки, кто списалось больше/меньше денег, в зависимости от того, когда добавлена транзакция.)
Как поступить? Можно ли навесить какую-нибудь функцию конкретно на запись в БД, чтобы списывалось ровно столько, сколько нужно?
Да, можно слушать onCreate https://firebase.google.com/docs/reference/functions/providers_firestore_.documentbuilder.html#oncreate
OnCreate это понятно, а дальше то что? SetInterval навесить? Но ведь firebase убьёт такую фоновую функцию. Мне надо, чтобы пока запись есть в базе, каждую минуту с момента добавления списывались деньги. Платежи отменяются только удалением записи из базы
После create нужно каждую минуту совершать платёж по api, используя данные, сохранённые create. Это шеринговое приложение, поэтому каждую минуту должна списываться арендная плата. Платёжные данные арендовавшего клиента сохранены в базе
Обсуждают сегодня