Python Firebase Admin SDK, Предоставлена незаконная учетная запись Firebase

Я пытаюсь инициализировать Firebase Admin SDK с помощью файла .env в приложении Django и получаю следующую ошибку:

Illegal Firebase credential provided. App must be initialized with a valid credential instance

код инициализации:


from dotenv import load_dotenv

load_dotenv()  # take environment variables from .env.

 firebase_admin.initialize_app({
                "type": os.getenv("TYPE"),
                "project_id": os.getenv("PROJECT_ID"),
                "client_email": os.getenv("CLIENT_EMAIL"),
                "private_key":  os.getenv("PRIVATE_KEY"),
                "client_id":  os.getenv("CLIENT_ID"),
                "private_key_id":  os.getenv("PRIVATE_KEY_ID"),
                "auth_uri":  os.getenv("AUTH_URI"),
                "token_uri":  os.getenv("TOKEN_URI"),
                "auth_provider_x509_cert_url":  os.getenv("AUTH_PROVIDER_X509_CERT_URL"),
                "client_x509_cert_url":  os.getenv("CLIENT_X509_CERT_URL"),
            })

Я нашел решение, которое сработало для меня, в комментарии к этому посту:Инициализация Firebase Admin через переменные среды без хранения serviceAccount.json

В основном я хранил все учетные данные firebase credentials json в одной переменной .env (она должна быть в одну строку) и использовал ее следующим образом:


from dotenv import load_dotenv

load_dotenv()  # take environment variables from .env.


firebaseConfig = json.loads(os.getenv("FIREBASE_CREDENTIALS", "{}"))


class FCMController:
    def __init__(self):
        if not firebase_admin._apps:  # check if firebase_admin is initialized
            firebase_admin.initialize_app(
                credential=credentials.Certificate(firebaseConfig))
Вернуться на верх