Я пытаюсь инициализировать Firebase Admin SDK в приложении Cloud Run, используя отдельную учетную запись службы (т.е. не учетную запись службы по умолчанию).
В документации предлагается:
import firebase_admin
from firebase_admin import credentials
cred = credentials.Certificate("path/to/serviceAccountKey.json")
firebase_admin.initialize_app(cred)
Однако я бы хотел избежать упаковки секретов в контейнер Cloud Run, поэтому я получаю файл json из Secret Manager и пытаюсь создать учетные данные и передать их в: firebase_admin.initialize_app (cred)
import firebase_admin
from google.cloud import secretmanager
from google.oauth2 import service_account
# Create credentials object then initialize the firebase admin client
sec_client = secretmanager.SecretManagerServiceClient()
name = sec_client.secret_version_path(GOOGLE_CLOUD_PROJECT_NUMBER, FIREBASE_SA_SECRET_NAME, "latest")
response = sec_client.access_secret_version(name)
service_account_info = json.loads(response.payload.data.decode('UTF-8'))
creds = service_account.Credentials.from_service_account_info(service_account_info)
firebase_admin.initialize_app(creds)
Получена ошибка:
ValueError: предоставлены недопустимые учетные данные Firebase. Приложение должно быть инициализировано действительным экземпляром учетных данных.
Любые советы приветствуются.