File size: 1,166 Bytes
923cd30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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()