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))