larxius commited on
Commit
594f131
·
verified ·
1 Parent(s): a91ad8e

Update backend/utils/firebase_storage.py

Browse files
Files changed (1) hide show
  1. backend/utils/firebase_storage.py +18 -10
backend/utils/firebase_storage.py CHANGED
@@ -18,6 +18,16 @@ import urllib.parse
18
  from datetime import timedelta
19
  from typing import Optional, Union, Any
20
 
 
 
 
 
 
 
 
 
 
 
21
  logger = logging.getLogger(__name__)
22
 
23
  # Firebase references — lazily initialized
@@ -56,6 +66,14 @@ def init_firebase(force_reinit: bool = False) -> bool:
56
  if _initialized and not force_reinit and _bucket is not None:
57
  return True
58
 
 
 
 
 
 
 
 
 
59
  creds_path = _get_credentials_path()
60
  bucket_name = _get_bucket_name()
61
 
@@ -68,9 +86,6 @@ def init_firebase(force_reinit: bool = False) -> bool:
68
  return False
69
 
70
  try:
71
- import firebase_admin
72
- from firebase_admin import credentials, storage
73
-
74
  # Parse credentials from file, raw JSON string, or base64 JSON
75
  cred = None
76
  if os.path.isfile(creds_path):
@@ -107,13 +122,6 @@ def init_firebase(force_reinit: bool = False) -> bool:
107
  logger.info(f"[Firebase] Initialized successfully. Bucket: {bucket_name}")
108
  return True
109
 
110
- except ImportError:
111
- logger.warning(
112
- "[Firebase] firebase_admin package is not installed. "
113
- "File uploads will fall back to local disk."
114
- )
115
- _initialized = True
116
- return False
117
  except Exception as e:
118
  logger.error(f"[Firebase] Initialization failed: {e}")
119
  _initialized = True
 
18
  from datetime import timedelta
19
  from typing import Optional, Union, Any
20
 
21
+ try:
22
+ import firebase_admin
23
+ from firebase_admin import credentials, storage
24
+ HAS_FIREBASE = True
25
+ except ImportError:
26
+ firebase_admin = None # type: ignore
27
+ credentials = None # type: ignore
28
+ storage = None # type: ignore
29
+ HAS_FIREBASE = False
30
+
31
  logger = logging.getLogger(__name__)
32
 
33
  # Firebase references — lazily initialized
 
66
  if _initialized and not force_reinit and _bucket is not None:
67
  return True
68
 
69
+ if not HAS_FIREBASE or firebase_admin is None or credentials is None or storage is None:
70
+ logger.warning(
71
+ "[Firebase] firebase_admin package is not installed. "
72
+ "File uploads will fall back to local disk."
73
+ )
74
+ _initialized = True
75
+ return False
76
+
77
  creds_path = _get_credentials_path()
78
  bucket_name = _get_bucket_name()
79
 
 
86
  return False
87
 
88
  try:
 
 
 
89
  # Parse credentials from file, raw JSON string, or base64 JSON
90
  cred = None
91
  if os.path.isfile(creds_path):
 
122
  logger.info(f"[Firebase] Initialized successfully. Bucket: {bucket_name}")
123
  return True
124
 
 
 
 
 
 
 
 
125
  except Exception as e:
126
  logger.error(f"[Firebase] Initialization failed: {e}")
127
  _initialized = True