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つを押さえておけば、よくあるエラーは回避できるぞ!


コメント