Домен Firebase Functions

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

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

Привет, Том пишет! Если вы заядлый пользователь 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

Предложения

Связанные

Приложение

Языки