Spaces:
Sleeping
Sleeping
import firebase_admin | |
from firebase_admin import credentials, firestore, storage | |
import os | |
import json | |
from dotenv import load_dotenv | |
from .config import settings | |
# Charger les variables d'environnement | |
load_dotenv() | |
def get_firebase_app(): | |
if not firebase_admin._apps: | |
try: | |
firebase_credentials = os.getenv("FIREBASE_CREDENTIALS") | |
if not firebase_credentials: | |
raise ValueError("FIREBASE_CREDENTIALS environment variable is not set") | |
cred_dict = json.loads(firebase_credentials) | |
cred = credentials.Certificate(cred_dict) | |
return firebase_admin.initialize_app(cred, { | |
'storageBucket': settings.STORAGE_BUCKET | |
}) | |
except Exception as e: | |
print(f"Firebase initialization error: {str(e)}") | |
raise | |
return firebase_admin.get_app() | |
def get_firestore_db(): | |
get_firebase_app() | |
return firestore.client() | |
def get_storage_bucket(): | |
get_firebase_app() | |
return storage.bucket() | |
# Créer des instances uniques | |
db = get_firestore_db() | |
bucket = get_storage_bucket() |