Closed2

Cloud Functions for Firebase、デプロイ周りでのメモ

niccariniccari

Cloud Functions for Firebaseでも、デプロイするファイルをignoreできる

公式ドキュメントに記載されていないが、Cloud Functions for FirebaseでもFirebase Hostingと同様にデプロイしたくないファイルを除外できる。firebase.jsonのfunctions.ignoreに、hosting.ignoreと同じフォーマットで指定すればOK。
なお、functions.ignoreを指定しない場合はnode_modulesが常に除外される。firebase-debug.logはどのような場合も除外される。

以下、firebase.jsonの記入例。

{
  "functions": {
    "source": "functions",
    "ignore": [
        "node_modules",
          ".eslintignore",
          ".eslintrc.json",
          "tsconfig.json",
          ".gitignore"
    ],
}

参考サイト: (github, 2019) firebase.json 'functions.ignore' bloats package upload #1602

niccariniccari

Mac M1 CPU環境だと、デプロイに使用するnode.jsのバージョンは14以下でないといけない

Mac M1 CPU環境において、node.jsのバージョン15以上を使うとデプロイに失敗する。内部的にdeflateしたソースコードをリモートでinflateするときに解凍に失敗している(bad CRCになる)ことが理由。
代わりに、node.jsのバージョンが14以下であればデプロイに成功する。

そのため、nvmもしくはnodebrewでバージョン14以下のnode.jsをインストールする。

nodebrew

バージョン14以下でarm64アーキテクチャ向けにビルドされたnodeは無いので、単にnodebrew install v14.15.4としてもエラーになる。

Can not fetch: https://nodejs.org/dist/v14.15.4/node-v14.15.4-darwin-arm64.tar.gz

nodebrewではターミナルのCPUアーキテクチャに応じてインストールするアーキテクチャを選ぶので、arch -x86_64 nodebrew install v14.15.4などとすることでx86_64版のnode v14.15.4をインストールできる。

nvm

そのままnvm install v14.15.4とすることでx86_64版のnode v14.15.4をインストールできる。

参考サイト: (Stack Overflow, 2021) Firebase Functions deploy requires keyboard input in GCP

このスクラップは2022/11/13にクローズされました