Firebase Functions (Python) デプロイでハマったエラーまとめ

Firebase

Firebase Functions (Python) デプロイでハマったエラーまとめ

1. Failed to find location of Firebase Functions SDK

Firebase CLI が Python SDK (firebase-functions) を見つけられないときに出るエラー。原因は venv が壊れていたり、requirements に必要なパッケージが無い場合。

読者
読者

どのパッケージを入れればいいの?

解決策は requirements.txt に最低限以下を入れること。

ごりら
ごりら

firebase-functions / firebase-admin / functions-framework の3つを忘れずに!

2. User code failed to load. Cannot determine backend specification.

関数が検出されなかった場合に出るエラー。@https_fn.on_request() 付き関数が無いか、import 時に例外が発生しているケースが多い。

読者
読者

関数が見つからないってどういうこと?

main.py に最低1つはエクスポート関数を書こう。

ごりら
ごりら

例えば health 関数を置いて、リクエストで “ok” を返すだけでもOK。

3. DefaultCredentialsError: Your default credentials were not found

Firestore をトップレベルで初期化すると、ADC (Application Default Credentials) が無い環境で認証が走って失敗する。

読者
読者

Firestore 初期化ってどこでやるべき?

トップレベルで firestore.client() を呼ばずに、遅延初期化にする。

ごりら
ごりら

get_db() 関数を作って、必要になったときだけ呼ぶのが安全。


@https_fn.on_request()
def post_to_wordpress(req: https_fn.Request) -> https_fn.Response:
 db = get_db()
 req_data = log_request_details(req, "post_to_wordpress")
〜〜〜〜略〜〜〜〜〜

エンドポイントの中で初期化する

まとめ

Firebase Functions (Python) でデプロイエラーにハマったときは次を確認:
1. SDK が見つからない → venv と requirements を正しく揃える
2. 関数が検出されない → @https_fn.on_request 付き関数を必ず定義
3. ADC が無い → Firestore 初期化を遅延させる

ごりら
ごりら

この3つを押さえておけば、よくあるエラーは回避できるぞ!

コメント

タイトルとURLをコピーしました