📑

Cloud Runから複数のFirebaseプロジェクトに接続する

2023/07/06に公開

TL;DR

  1. Cloud Runのサービスアカウントに各Firebaseプロジェクトの適切な権限を付与する

  2. アプリケーションコードにて各プロジェクト毎にFirebase Appのインスタンスを作成する

python: 3.11
firebase-admin: 5.2.0

import firebase_admin

project_a = firebase_admin.initialize_app(
    name="project_a", options={"projectId": "poject_a"}
)
project_b = firebase_admin.initialize_app(
    name="project_b", options={"projectId": "poject_b"}
)
  1. リソース操作時にappパラメータに対象のFirebase Appインスタンスを指定する
from firebase_admin import auth
    
project_a_users = auth.list_users(app=project_a)
project_b_users = auth.list_users(app=project_b)

説明

firebase_admin.initalzie_appoptionsパラメータ内でprojectIdを明示的に指定する必要があるらしい(この辺のSDKの実装を見ないと気づかなかった)

参考

https://firebase.google.com/docs/reference/admin/python/firebase_admin

Discussion