Есть ли способ запланировать редактирование базы данных firebase?

Я пытаюсь создать автоматические изменения в базе данных в firebase. Есть ли способ сделать это на стороне сервера? Я новичок в разработке iOS и быстро, поэтому любая помощь будет принята с благодарностью.

Кроме того, я пробовал Zapier, но этот сервис недостаточно специфичен для моих нужд.


person ndduong    schedule 05.06.2016    source источник
comment
Кросс-пост: groups.google.com/forum/#! тема/firebase-talk/4P5u2MLx-TU   -  person Frank van Puffelen    schedule 05.06.2016


Ответы (1)


Да — Firebase имеет довольно гибкий набор параметров для обновлений на стороне сервера, и достаточно просто запланировать задание cron для подключения к firebase и выполнения некоторых запланированных обновлений или изменений. Самый общий подход — использовать REST API для выполнения ваших обновлений, хотя существуют специальные библиотеки для поддержки Node и других платформ. Стоит знать о недавнем крупном обновлении до версии 3 Firebase, в котором было внесено довольно много значительных изменений — можно легко спутать старые примеры с новым API, поэтому помните о различиях, когда вы собираете свой первый доказательство концептуальных примеров.

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

Если у вас есть собственный сервер и вы хотите интегрироваться, я бы посоветовал начать с: https://firebase.google.com/docs/server/setup#prerequisites

Тогда, возможно, беглый взгляд на:

https://firebase.googleblog.com/docs/web/quickstart.html

а также

https://www.firebase.com/docs/rest/

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

Если вы не знакомы с JWT, стоит потратить немного времени на то, чтобы освоить его и поработать с примерами на странице https://www.firebase.com/docs/rest/guide/user-auth..html

В дополнение к вашему комментарию: Итак, первый подход, который приходит на ум, - запустить какое-то запланированное задание в вашем Cron, который будет подключаться с помощью REST API, выполнять какой-либо запрос к существующим данным, чтобы определить те записи, которые требуют обновления, и удалить или изменить их.

Дав немного больше, хотя вы могли бы расширить этот подход без необходимости запуска с повторяющимся периодом меньше, чем минимальное ожидаемое время удаления, вы могли бы запустить планировщик только для очистки в более длительный период, но отфильтровать свои результаты для клиента, чтобы вы не включая устаревшие данные. Этот подход немного обсуждается в Чат Firebase — удаление старых сообщений

Получение правильного решения для вашего конкретного сценария будет во многом зависеть от того, насколько хорошо вы структурируете свои данные, что может быть нелогичным; особенно для пользователей, имеющих опыт работы с СУБД.

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

Если самой фильтрации недостаточно и у вас нет сервера, на котором вы можете выполнить процесс очистки CRON, вы можете реализовать рабочий процесс firebase в Node или аналогичном и запустить его в службе контейнеров, такой как Heroku или Google Apps. См. push-уведомления Firebase – рабочий узел, чтобы узнать, как это сделать. На запрос Google сообщил, что они не не советовали, где лучше всего размещать рабочие службы, но упоминали как Google App Engine и Heroku.

Другой подход, если вы не хотите реализовывать и размещать наблюдатель/рабочий процесс, состоит в том, чтобы просто включить в клиент некоторый код, который периодически проверяет и удаляет устаревшие данные.

firebase Queue — это очень круто, но может быть немного излишним для простого истечения срока действия данные.

person Peter Scott    schedule 05.06.2016
comment
Привет, спасибо за ответ. Я могу аутентифицировать пользователей, обновлять и извлекать данные. Однако я понятия не имею, как автоматически удалить данные из базы данных. Допустим, пользователь хочет, чтобы данные «x» были удалены за 1 час, я хочу автоматизировать, чтобы Firebase удалял их за 1 час, и я не делал этого вручную. Раньше я не использовал REST API и не настраивал свой собственный сервер. Так что самый простой способ автоматизировать этот процесс был бы очень признателен. - person ndduong; 05.06.2016