結論
- 環境変数に
FIREBASE_CONFIG='{"projectId": "your-project-id"}'
を設定する。 - GAEのサービスアカウントをfirebaseに紐付いたプロジェクトのIAMに追加し、権限を与える。
別解として、firebaseに紐付いたプロジェクトでサービスアカウントキーを発行し、initialize_app
実行時にそのキーを使うように指定する方法もあると思います。
環境
- Google App Engine python3.8
- firebase-admin 5.0.0
実装
FIREBASE_CONFIG
を設定
projectId
(project_idではないことに注意)にfirebaseのprojectIdを設定する。
.env
FIREBASE_CONFIG='{"projectId": "your-project-id"}'
firebase_admin
SDKのセットアップ
同プロジェクトに紐付いたfirebaseを操作するときと変わらず、引数なしでinitialize_app
を実行する。
firebase_admin_setup.py
import firebase_admin
firebase_admin.initialize_app()
IAMの設定
[GAEのプロジェクトID]@appspot.gserviceaccount.com
をfirebaseに紐付いたプロジェクトのIAMに追加し適切な権限を与える。(今回はFirebase Admin SDK 管理者サービス エージェント
のロールを与えました。)