27 lines
1011 B
Python
27 lines
1011 B
Python
import firebase_admin
|
|
from firebase_admin import credentials, auth, firestore
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# Securely load Firebase credentials from environment variables
|
|
cred = credentials.Certificate({
|
|
"type": os.environ.get("FIREBASE_TYPE"),
|
|
"project_id": os.environ.get("FIREBASE_PROJECT_ID"),
|
|
"private_key_id": os.environ.get("FIREBASE_PRIVATE_KEY_ID"),
|
|
"private_key": os.environ.get("FIREBASE_PRIVATE_KEY").replace('\\n', '\n'),
|
|
"client_email": os.environ.get("FIREBASE_CLIENT_EMAIL"),
|
|
"client_id": os.environ.get("FIREBASE_CLIENT_ID"),
|
|
"auth_uri": os.environ.get("FIREBASE_AUTH_URI"),
|
|
"token_uri": os.environ.get("FIREBASE_TOKEN_URI"),
|
|
"auth_provider_x509_cert_url": os.environ.get("FIREBASE_AUTH_PROVIDER_X509_CERT_URL"),
|
|
"client_x509_cert_url": os.environ.get("FIREBASE_CLIENT_X509_CERT_URL")
|
|
})
|
|
|
|
# Initialize the Firebase app
|
|
firebase_admin.initialize_app(cred)
|
|
|
|
def get_db():
|
|
"""Returns a Firestore client instance."""
|
|
return firestore.client() |