🎯

Firebase Functions で特定のコードベースの特定の関数をデプロイする

2023/08/06に公開

結論

# firebase deplop --only functions:[codebase]:[functionName]
% firebase deplop --only functions:py:hello_world

困っていたこと

Firebase Functions をデプロイする際、特定の関数のみデプロイしたい場合があります。

その場合、ドキュメントに書いてあるとおり下記のコマンドでデプロイすることができます。

# firebase deplop --only functions:[functionName]
% firebase deplop --only functions:helloWorld

しかし、今回私がデプロイしたい関数は codebase が違う、特定の関数でした。その場合、上記のコマンドではCLIが関数を見つけることができません。

codebase が default でない場合

Firebase にある関数の構成オブジェクト設定には codebase というプロパティがあり、単一リポジトリにある複数のソースパッケージの管理をすることができます。

"functions": [
  {
    "source": "teamA",
    "codebase": "team-a"
  },
  {
    "source": "teamB",
    "codebase": "team-b"
  },
]

この場合、コードベースを下記のように指定すれば、特定のコードベースをデプロイすることができます。

$ firebase deploy --only functions:team-b
i  deploying functions
i  functions: preparing codebase team-b for deployment
i  functions: updating Node.js 16 function team-b:helloBTeam(us-central1)...
...

コードベースを分けることで、JavaScript の Functions と Python の Functions を同時に管理することもできます。

ここまではドキュメントに記載されているのですが、さらに特定のコードベースの特定の関数をデプロイする方法が記載されていませんでした。(私が調べた限り、記述されている箇所を見つけることができませんでした。)

色々試した結果、冒頭に記載した通り、下記のコマンドで特定コードベースの特定の関数をデプロイすることができました。

# firebase deplop --only functions:[codebase]:[functionName]
% firebase deplop --only functions:py:hello_world

参考

Discussion