Домен Firebase Functions

Как использовать собственный домен для функций Firebase

Tom Обучение, Облако, Руководства по кодированию, Сеть и Интернет

Готово, готово, огонь!

Привет, Том пишет! Если вы заядлый пользователь Firebase, вы знаете, насколько простым может быть управление вашим сервером без серверной части. Благодаря функциям Firebase я просто пишу свою бизнес-логику как простую функцию, развертываю эту функцию через интерфейс командной строки и могу получить доступ к ней из облака в любой точке планеты. Сама настройка настолько проста, что само развертывание занимает максимум пару минут. Но есть особый случай с функциями Firebase, который может потребовать дополнительной работы - с использованием личного домена, а не того, который предоставляется Firebase.

Соревнование

Если вы просто развернете функции Firebase, как описано, вы получите хост в субдомене от Google, в частности, в

cloudfunctions.net

Для простых случаев использования это в основном то, что вам нужно - просто разверните вещь и сделайте ее доступной для использования. Но другие варианты использования требуют, чтобы ваш бэкэнд был доступен в вашем домене. В этом примере я буду использовать свой собственный домен flaming.codes.

Установка

Вот предварительные условия, чтобы убедиться:

  • вы настроили проект Firebase
  • в разделе «Хостинг» вы настроили свой персональный домен; это простой процесс, где вам просто нужно сохранить TXT-запись у вашего хостинг-провайдера.

Конфигурация

Чтобы ваш личный домен работал не только с вашим размещенным веб-приложением, но и с вашими функциями, необходимо обновить firebase.json (объяснение после примера):

{
  "functions": {
    ...
  },
  "hosting": {
    ...,
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "!/api/**",
        "destination": "/index.html"
      }
    ]
  },
  ...
}

Единственный способ заставить его работать - это обновить ключ хостинга, а не функции, в вашем firebase.json. По сути, мы сообщаем Firebase, что из нашего размещенного веб-приложения все вызовы / api / ... должны быть перенаправлены на функцию с именем api. Больше всего у меня ушло на второй пункт, где я явно должен объявить любой другой маршрут, кроме api, который будет обрабатываться как маршрут веб-приложения по умолчанию.

Используя следующую настройку, старая облачная функция

https://uscentral1-flaming-codes.cloudfunctions.net/api

поэтому становится

https: //flaming.codes/api / ...

Обратите внимание, что здесь важен порядок, правила перезаписи обрабатываются от первого до последнего элемента, поэтому в этом случае визуально сверху вниз. Использование подстановочного знака для переназначения всех ваших функций действительно не рекомендуется для общего использования, так как это может нарушить работу вашего веб-приложения.

Заворачивать

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

- Tom

Действия

Feedback

Предлагаемые сообщения