Лучший способ запустить функцию Google Cloud с помощью приложения iOS

#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 является одной из альтернатив. Обратите внимание, что это увеличивает стоимость записи в базу данных по сравнению с вызываемой облачной функцией, которая не требует никаких дополнительных затрат, кроме вызова облачной функции.