#swift #firebase #google-cloud-functions #google-cloud-pubsub
#swift #firebase #google-облачная платформа #google-cloud-функции #google-cloud-pubsub
Вопрос:
Я создаю приложение Swift, которое извлекает данные из MongoDB на основе URL-адресов в качестве первичного ключа. Если URL-адреса еще нет в коллекции, то я хочу запустить функцию Google Cloud, чтобы перейти и проверить URL-адрес и добавить его в базу данных.
Просматривая параметры запуска облачной функции, я не увидел простого способа заставить ее отслеживать записи в MongoDB (планировалось создать таблицу новых URL-адресов, которые будут запускаться через облачную функцию.)
Я видел триггеры PubSub и Firebase, и PubSub показался мне лучшим вариантом, однако я не смог найти много информации о публикации сообщений в PubSub с iOS (хотя много о подписке)
Я вижу много документации iOS для FireBase. Мне интересно, не лучше ли записать в Firebase и запустить на этом, чтобы каждый пользователь приложения при вводе нераспознанного URL-адреса записывал этот URL в Firebase, что запускало бы облачную функцию. Или я должен выяснить, как заставить приложение iOS опубликовать сообщение в теме PubSub? На данный момент мне не нужен сверхбыстрый ответ, поскольку системе, как ожидается, потребуется время для обработки новых URL.
Ответ №1:
Вероятно, вам будет удобнее писать в Firebase и заставлять Firebase запускать вашу облачную функцию. К сожалению, в Swift нет официально поддерживаемого облачного паба / субклиента.
Ответ №2:
Лучший способ запустить функцию Google Cloud с помощью приложения iOS
Судя по названию и основной части вашего вопроса, я бы сказал, что лучший способ — вызвать из вашего приложения вызываемую облачную функцию.
Как объясняется в документе:
Облачные функции для клиентских SDK Firebase позволяют вызывать функции непосредственно из приложения Firebase. Чтобы вызвать функцию из вашего приложения таким образом, напишите и разверните вызываемую по протоколу HTTPS функцию в Cloud Functions, а затем добавьте клиентскую логику для вызова функции из вашего приложения.
Все подробности о том, как написать облачную функцию, а также как вызвать ее из вашего приложения iOS, можно найти в документе, упомянутом выше.
Комментарии:
1. Спасибо, я рассмотрю это как альтернативу. Я почувствовал, что запись в базу данных и запуск на ней лучше, чтобы в случае смерти одного из процессов запрос все равно записывался.
2. Да, запись в DB является одной из альтернатив. Обратите внимание, что это увеличивает стоимость записи в базу данных по сравнению с вызываемой облачной функцией, которая не требует никаких дополнительных затрат, кроме вызова облачной функции.