Spaces:
Running
Running
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 |