Spaces:
Sleeping
Sleeping
| import base64 | |
| import json | |
| import os | |
| import firebase_admin | |
| from firebase_admin import db | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| def decode_service_key(): | |
| encoded_key = os.environ["FIREBASE_CREDENTIALS"] | |
| original_service_key = json.loads(base64.b64decode(encoded_key).decode('utf-8')) | |
| if original_service_key: | |
| return original_service_key | |
| return None | |
| # Firebase initialization | |
| def initialize_firebase(): | |
| try: | |
| # Try to initialize Firebase app if not already initialized | |
| firebase_admin.get_app() | |
| except ValueError: | |
| creds_file_name = '.config/user-evaluations-firebase-creds.json' | |
| if not (os.path.exists(creds_file_name) and os.path.isdir(creds_file_name)): | |
| credentials = decode_service_key() | |
| with open(creds_file_name, 'w', encoding='utf-8') as file: | |
| json.dump(credentials, file, ensure_ascii=False, indent=4) | |
| # If not initialized, initialize the default app | |
| cred_obj = firebase_admin.credentials.Certificate(creds_file_name) | |
| database_URL = os.environ["FIREBASE_DATABASE_URL"] | |
| firebase_admin.initialize_app(cred_obj, {'databaseURL': database_URL}) | |
| def db_setup(): | |
| try: | |
| initialize_firebase() | |
| except Exception as e: | |
| print(f"Error initializing Firebase: {e}") | |
| firebase_admin.get_app() | |
| ref = db.reference('/') | |
| return ref | |