Firebase
Firebase Functions
より新しく推奨される世代のFirebase Functionsを使用するには、firebase.gen
オプションを2
に設定します。
export default defineNuxtConfig({
nitro: {
firebase: {
gen: 2
}
}
})
NITRO_FIREBASE_GEN=2
環境変数を使用できます。既にウェブサイトのデプロイ済みバージョンがあり、第2世代にアップグレードしたい場合は、Firebaseドキュメントの移行プロセスを参照してください。具体的には、CLIは新しい関数をデプロイする前に既存の関数を削除するように求めます。
プロジェクト設定
代わりに、Firebase CLIを使用してプロジェクトを設定することをお勧めします。これにより、プロジェクトIDが取得され、必要な依存関係が追加され(上記を参照)、GitHub Actionsによる自動デプロイ(ホスティングのみ)も設定できます。Firebase CLIのインストールについて学習する。
- 最新バージョンのFirebase CLIをインストールします。ターミナル
npm install -g firebase-tools@latest
- Firebaseプロジェクトの初期化ターミナル
firebase login firebase init hosting
.output/public
を入力できます。次のステップでは、プロジェクトをシングルページアプリケーションとして**設定しないでください**。完了したら、Cloud Functionsでサーバーサイドレンダリングを有効にするために、次のものをfirebase.json
に追加します。
{
"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
ビルドとデプロイ
Nitroビルドを実行してからfirebase deploy
コマンドを実行して、Firebaseホスティングにデプロイします。
npm run build -- --preset=firebase
firebase deploy
オプション
nuxt.config.ts
ファイルでFirebase Functionsのオプションを設定できます。
export default defineNuxtConfig({
nitro: {
firebase: {
gen: 2,
httpsOptions: {
region: 'europe-west1',
maxInstances: 3,
},
},
},
});
ランタイムNode.jsバージョン
設定でカスタムNode.jsバージョンを設定できます。
export default defineNuxtConfig({
nitro: {
firebase: {
nodeVersion: '18' // Can be '16' or '18' or '20'
},
},
});
Firebaseツールは、package.json
のengines.node
バージョンを使用して、関数の使用するNodeバージョンを決定します。Nuxtは設定されたNode.jsバージョンを使用して.output/server/package.json
に自動的に書き込みます。
firebase.json
ファイルにランタイムキーを追加する必要がある場合もあります。
{
"functions": {
"source": ".output/server",
"runtime": "nodejs20"
}
}
Firebaseプロジェクトに他のCloud Functionsがある場合
Nuxtプロジェクトをデプロイすると、他のCloud Functionsが削除されるという警告が表示される場合があります。これは、NitroがFirebase Functionsにプロジェクト全体をデプロイするためです。Nuxtプロジェクトのみをデプロイする場合は、--only
フラグを使用できます。
firebase deploy --only functions:server,hosting
本番環境でのCookieの使用
Cloud FunctionsまたはCloud Runと共にFirebaseホスティングを使用する場合、一般的に、効率的なCDNキャッシュ動作を許可するために、受信リクエストからCookieが削除されます。特別な名前の__session
Cookieのみがアプリケーションに渡されます。
環境変数の使用
Firebase Functionsの環境変数を設定するには、.env
ファイルを.output/server
ディレクトリにコピーする必要があります。これを行うには、ビルドコマンドの後に自動的に実行されるpostbuild
スクリプトをpackage.json
に追加します。
{
"scripts": {
"postbuild": "cp .env .output/server/.env"
}
}