Size: a a a

firebase_ru — русскоговорящее сообщество

2021 September 29

AG

Arthur G in firebase_ru — русскоговорящее сообщество
источник

ИЕ

Игнат Егоров... in firebase_ru — русскоговорящее сообщество
Добрый вечер! Такой вопрос: нужно сделать регулярные (ежеминутные) платежи. Сейчас это реализовано так: запись, куда и кому платить, сохраняется в firestore. Есть cron функция (* * * * *), которая каждую минуту пробегается по записям в БД (активным контрактам) и совершает платеж. Проблема в том, что если контракт начался, например в 14:30:59 а закончился в 14:31:01 - то деньги за минуты спишутся, хотя прошла лишь секунда (короче крон запускается ровно в 00 секунд, поэтому будут накладки, кто списалось больше/меньше денег, в зависимости от того, когда добавлена транзакция.)

Как поступить? Можно ли навесить какую-нибудь функцию конкретно на запись в БД, чтобы списывалось ровно столько, сколько нужно?
источник

K🦋

Kir 🦋 JS in firebase_ru — русскоговорящее сообщество
источник

K🦋

Kir 🦋 JS in firebase_ru — русскоговорящее сообщество
Это даже более идеоматично
источник

VK

Vadim Kostin in firebase_ru — русскоговорящее сообщество
Крон не нужен здесь да, нужна функция, у которой тригер создание элемента в кооперации
источник

ИЕ

Игнат Егоров... in firebase_ru — русскоговорящее сообщество
OnCreate это понятно, а дальше то что? SetInterval навесить? Но ведь firebase убьёт такую фоновую функцию.

Мне надо, чтобы пока запись есть в базе, каждую минуту с момента добавления списывались деньги. Платежи отменяются только удалением записи из базы
источник

VK

Vadim Kostin in firebase_ru — русскоговорящее сообщество
После create нужно совершить несколько действий? Или рекуретно действие
источник

ИЕ

Игнат Егоров... in firebase_ru — русскоговорящее сообщество
После create нужно каждую минуту совершать платёж по api, используя данные, сохранённые create.

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

VK

Vadim Kostin in firebase_ru — русскоговорящее сообщество
Понял, ну Вашу задачу можно решить на уровне бизнес логики которая крутиться в кроне.
В кроне считать разницу таймстапа и текущего времени, и если это меньше минуты, то списать посекундную оплату.
источник

VK

Vadim Kostin in firebase_ru — русскоговорящее сообщество
У вас же в кроне проход по циклу и вы получаете данные по каждому платежу. В модель платежа можно получить createdAt поле, которое хранит в себе дату создания, и дальше в цикле в кроне по нему считать.

Если поля createdAt нет в модели данных то добавить. Просто из документа коллекции получить дату создания вроде как нельзя
источник

mm

mopsiq mopsiq in firebase_ru — русскоговорящее сообщество
Пишу в vscode, странно они себя ведут, вот сам не понимаю, что не так, постоянно какие-то ерроры сыпит
источник

K🦋

Kir 🦋 JS in firebase_ru — русскоговорящее сообщество
Спасиб, а можн прислать какие будут ошибки?
источник

mm

mopsiq mopsiq in firebase_ru — русскоговорящее сообщество
Такие же как у этих парней: https://github.com/firebase/firebaseui-web/issues/771
Иногда ещё бывало проскакивало key api error, когда объявляешь getAuth
источник

K🦋

Kir 🦋 JS in firebase_ru — русскоговорящее сообщество
Понял, спасибо
источник
2021 September 30

K🦋

Kir 🦋 JS in firebase_ru — русскоговорящее сообщество
Привет, через 15 минут буду лайвкодить Firebase-приложение у  @mathrandomcommunity!

В качестве фреймворка буду юзать svelte.dev!

Посмотреть можно тут: https://youtu.be/1hvUFd_CxI4
источник

и

иван in firebase_ru — русскоговорящее сообщество
подскажите, можно как то сделать выборку, чтобы мне из базы данных пришло только поле messages или name, или в firebase можно только все получать, а потом фильтровать это у себя на клиенте?
источник

и

иван in firebase_ru — русскоговорящее сообщество
или подскажите где можно найти примеры сложных запросов
источник

DU

Dr Uid in firebase_ru — русскоговорящее сообщество
просто укажи в пути это, например в тс так делаю
this.db.object<string>(`yourID/active/0/name`).valueChanges()

Прочитай тут подробнее: https://firebase.google.com/docs/database/web/read-and-write
источник

SO

Slackin' On Your Mac... in firebase_ru — русскоговорящее сообщество
еще orderByKey
источник

AG

Arthur G in firebase_ru — русскоговорящее сообщество
Проекции для запросов не поддерживаются в RT DB.

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

https://firebase.google.com/docs/database/web/structure-data#avoid_nesting_data
источник