https://cloud.google.com/functions/docs/runtime-support?hl=ja
下記は、Google Cloud Functions のランタイム Node.jsをアップデートする手順。
1. ローカルPC側のNode.jsをアップデートする
http://iphone-app-developer.seesaa.net/article/503332042.html?1715753752
アップデートするNode.jsのバージョンは、Cloud Functions がサポートしているNode.jsのバージョンの最新版とすること。
2. ローカルPCからCloud Functionsにデプロイする
(0) PCを新しくした場合は、Firebase CLIがインストールされていないので、インストールする。
npm install -g firebase-tools
https://firebase.google.com/docs/cli?hl=ja#mac-linux-npm
(1) ターミナルでFirebaseの作業用フォルダに移動する。
デプロイする関数を定義している、index.jsが保存されているディレクトリに移動すること。
例:
/Users/(USER-NAME)/Documents/Firebase/CloudFunctions/(APP-NAME)/functions
(2) Firebaseにログインする。
firebase login
解析情報送信に関する応答メッセージに応答すると、ブラウザのウインドウが開き、Firebase CLIが起動する。
-bash: firebase: command not foundと表示されてfirebaseが起動できない場合、下記コマンドでPATHを設定し、再ログインする。
export PATH=$PATH:`npm prefix --location=global`/bin
https://dev.classmethod.jp/articles/how-to-pass-path-through-a-globally-installed-npm-package/
(3) ログインに成功し、「Firebase CLI Login Successful」と表示されたら、そのブラウザのウインドウを閉じる。
(4) 新しいNode.jsランタイムをデプロイする。
(4-1) 使用するNode.jsのバージョンを定義ファイルに指定してデプロイする。
(4-1)-1 package.jsonをエディタで開き、修正する。
Node.js 20に変更する場合:
"engines": {
"node": "20"
}
(4-1)-2 デプロイする。
firebase deploy --only functions
https://firebase.google.com/docs/cli?hl=ja#partial_deploys
https://firebase.google.com/docs/functions/callable?hl=ja&gen=2nd#objective-c
Deploy complete!と表示されていたらOK。
(4-2) デプロイ時に下記エラーとなった場合、PCを新しくした場合は、Firebase環境を再構築する。
Cannot understand what targets to deploy/serve. No targets in firebase.json match '--only functions'.
(4-2)-1 Firebaseを初期化
firebase init functions
(4-2)-1 記述するコードの選択。
What language would you like to use to write Cloud Functions? -> JavaScript
(4-2)-2 ESLintは使用しない設定にする。
Do you want to use ESLint to catch probable bugs and enforce style? -> No
(4-2)-3 package.jsonを上書き更新する。
File functions/package.json already exists. Overwrite? -> Yes事前に、package.jsonを複製しておき、更新前と更新後が比較できるようにしておくとよい。
(4-2)-4 index.js(関数を記述したソースコード)は上書き更新しない。
File functions/index.js already exists. Overwrite? -> No誤って上書きしないように、必ず事前に複製してバックアップを取得すること。
(4-2)-5 gitignoreは上書き更新しない。
File functions/.gitignore already exists. Overwrite? -> No
(4-2)-6 npmで依存関係を今すぐインストールする設定にする。
Do you want to install dependencies with npm now? -> Yes
(4-2)-7 初期化完了の確認。
ターミナルに「Firebase initialization complete!」と表示されたらOK。
(5) デプロイ完了時、Project ConsoleのURLが表示されているので、コピー&ペーストでブラウザを開き、状況を確認する。
(6) Google Cloudコンソールをブラウザで開き、ログエクスプローラ画面でデプロイの状況を確認する。
Step #2 - "build": Using runtime version from GOOGLE_RUNTIME_VERSION: 20.12.2package.json で指定したNode.jsのバージョンがインストールされていればOK。
Step #2 - "build": Installing Node.js v20.12.2.
Step #2 - "build": Runtime successfully downloaded from asia-northeast1-docker.pkg.dev/gae-runtimes/runtimes-ubuntu2204/nodejs:20.12.2
「要求されたプロジェクトとバンドル ID の APNS 証明書が見つかりません」というエラーが生じている場合、Firebase Cloud Messaging を使用していないのであれば、無視してOK。
mobilesdk-pa.googleapis.com e.v1.SettingsService.GetApnsAuthKey projects/xxxxx APNS cert not found for requested project and bundle ID
(7) Firebaseからログアウトする。
firebase logout
(8) SANDBOX、本番環境でテストを実施する。
(注)
Node.jsをバージョンアップする場合、環境変数の自動的に設定が変更される場合がある。
https://cloud.google.com/functions/docs/migrating/nodejs-runtimes?hl=ja
https://cloud.google.com/functions/docs/configuring/env-var?hl=ja#environment_variables_set_automatically
関連記事:
http://iphone-app-developer.seesaa.net/article/481766405.html
https://qiita.com/yum_fishing/items/8155bd7c1087d7cf15ad