from firebase_admin import auth from typing import Dict, Optional def create_user(email: str, password: str) -> Dict: """Create a new user with email and password""" try: user = auth.create_user( email=email, password=password, email_verified=False ) return { "success": True, "user_id": user.uid, "email": user.email } except auth.EmailAlreadyExistsError: return { "success": False, "error": "Email already exists" } except Exception as e: return { "success": False, "error": str(e) } def verify_token(id_token: str) -> Optional[Dict]: """Verify Firebase ID token""" try: decoded_token = auth.verify_id_token(id_token) return decoded_token except Exception as e: return None def get_user_by_email(email: str) -> Optional[Dict]: """Get user by email""" try: user = auth.get_user_by_email(email) return { "user_id": user.uid, "email": user.email, "email_verified": user.email_verified } except auth.UserNotFoundError: return None except Exception: return None def delete_user(uid: str) -> bool: """Delete a user by UID""" try: auth.delete_user(uid) return True except Exception: return False