46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import logging
|
|
import firebase_admin
|
|
from firebase_admin import credentials
|
|
from pathlib import Path
|
|
|
|
from app.core.config import settings
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
firebase_app = None
|
|
|
|
|
|
def init_firebase():
|
|
"""Inizializza Firebase Admin SDK"""
|
|
global firebase_app
|
|
|
|
if firebase_app is not None:
|
|
logger.info("Firebase già inizializzato")
|
|
return firebase_app
|
|
|
|
try:
|
|
# Percorso al file di credenziali
|
|
cred_path = Path(__file__).parent.parent.parent / "firebase-credentials.json"
|
|
|
|
if not cred_path.exists():
|
|
logger.error(f"File credenziali Firebase non trovato: {cred_path}")
|
|
raise FileNotFoundError(f"firebase-credentials.json non trovato in {cred_path}")
|
|
|
|
# Inizializza con le credenziali
|
|
cred = credentials.Certificate(str(cred_path))
|
|
firebase_app = firebase_admin.initialize_app(cred)
|
|
|
|
logger.info("Firebase Admin SDK inizializzato con successo")
|
|
return firebase_app
|
|
|
|
except Exception as e:
|
|
logger.error(f"Errore nell'inizializzazione di Firebase: {e}")
|
|
raise
|
|
|
|
|
|
def get_firebase_app():
|
|
"""Ottiene l'istanza di Firebase App"""
|
|
if firebase_app is None:
|
|
return init_firebase()
|
|
return firebase_app
|