Firebase
Firebase функции
Чтобы использовать более новое и рекомендуемое поколение функций firebase, установите опцию firebase.gen в значение 2:
export default defineNuxtConfig({
  nitro: {
    firebase: {
      gen: 2
    }
  }
})
NITRO_FIREBASE_GEN=2.Если у вас уже есть развернутая версия вашего сайта и вы хотите перейти на 2-й gen, см. процесс миграции в документации Firebase. А именно, CLI попросит вас удалить существующие функции перед развертыванием новых.
Настройка проекта
Вы можете предпочесть настроить проект с помощью Firebase CLI, который получит для вас идентификатор проекта, добавит необходимые зависимости (см. выше) и даже настроит автоматическое развертывание через GitHub Actions (только для хостинга). Узнайте об установке Firebase CLI.
- Установите последнюю версию Firebase CLI.Terminal
npm install -g firebase-tools@latest - Инициализируйте ваш проект FirebaseTerminal
firebase login firebase init hosting 
.output/public в качестве публичной директории. На следующем шаге не конфигурируйте проект как одностраничное приложение.После завершения работы добавьте следующее в файл firebase.json, чтобы включить серверный рендеринг в Cloud Functions:
{
  "functions": { "source": ".output/server" },
  "hosting": [
    {
      "site": "<your_project_id>",
      "public": ".output/public",
      "cleanUrls": true,
      "rewrites": [{ "source": "**", "function": "server" }]
    }
  ]
}
Локальный предварительный просмотр
Вы можете предварительно просмотреть локальную версию своего сайта, если вам нужно протестировать его без развертывания.
npm run build -- --preset=firebase
firebase emulators:start
Сборка и развертывание
Разверните хостинг Firebase Hosting, выполнив сборку Nitro, а затем запустив команду firebase deploy.
npm run build -- --preset=firebase
firebase deploy
Параметры
Вы можете задать параметры для функций firebase в файле nuxt.config.ts:
export default defineNuxtConfig({
  nitro: {
    firebase: {
      gen: 2,
      httpsOptions: {
        region: 'europe-west1',
        maxInstances: 3,
      },
    },
  },
});
Версия Node.js для выполнения
В конфигурации можно задать пользовательскую версию Node.js:
export default defineNuxtConfig({
  nitro: {
    firebase: {
      nodeVersion: '18' // Может быть '16' или '18' или '20'
    },
  },
});
Инструменты Firebase используют версию engines.node в package.json, чтобы определить, какую версию node использовать для ваших функций. Nuxt автоматически записывает в .output/server/package.json сконфигурированную версию Node.js.
Вам также может понадобиться добавить ключ времени выполнения в файл firebase.json:
{
  "functions": {
    "source": ".output/server",
    "runtime": "nodejs20"
  }
}
Если в вашем проекте firebase есть другие облачные функции
Вы можете получить предупреждение о том, что другие облачные функции будут удалены при развертывании проекта Nuxt. Это происходит потому, что Nitro развернет весь ваш проект в функции firebase. Если вы хотите развернуть только ваш проект Nuxt, вы можете использовать флаг --only:
firebase deploy --only functions:server,hosting
Использование Cookies в продакшене
При использовании Firebase Hosting вместе с Cloud Functions или Cloud Run куки обычно удаляются из входящих запросов, чтобы обеспечить эффективное поведение CDN-кеша. Только куки со специальным именем __session могут быть переданы вашему приложению.