credify / app /core /firebase_config.py
abhisheksan's picture
setup
6064a78
import os
import base64
import json
from firebase_admin import credentials, initialize_app, storage
from dotenv import load_dotenv
load_dotenv()
_firebase_app = None
_firebase_bucket = None
def initialize_firebase():
global _firebase_app, _firebase_bucket
if _firebase_app is not None:
return _firebase_bucket
firebase_key_base64 = os.getenv('FIREBASE_KEY_BASE64')
if not firebase_key_base64:
raise ValueError("Environment variable FIREBASE_KEY_BASE64 is not set or is empty")
try:
print("Decoding Firebase key...")
firebase_key_json = base64.b64decode(firebase_key_base64).decode('utf-8')
firebase_key_dict = json.loads(firebase_key_json)
print("Initializing Firebase...")
cred = credentials.Certificate(firebase_key_dict)
# Initialize Firebase with a unique name if needed
_firebase_app = initialize_app(cred, {
'storageBucket': os.getenv('FIREBASE_STORAGE_BUCKET')
})
_firebase_bucket = storage.bucket(app=_firebase_app)
print("Firebase initialized successfully.")
return _firebase_bucket
except Exception as e:
raise RuntimeError(f"Error initializing Firebase: {e}")
firebase_bucket = initialize_firebase()