import os
from dotenv import load_dotenv
load_dotenv()

# Set env var explicitly if missing
if not os.environ.get("GOOGLE_APPLICATION_CREDENTIALS"):
    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "firebase-key.json"

import firebase_admin
from firebase_admin import credentials, auth

# Initialize
try:
    if not firebase_admin._apps:
        cred = credentials.Certificate(os.environ["GOOGLE_APPLICATION_CREDENTIALS"])
        firebase_admin.initialize_app(cred)
except Exception as e:
    print(f"Init error: {e}")

email = "subscriber@example.com"
password = "subscriber@12345"

try:
    user = auth.create_user(
        email=email,
        email_verified=True,
        password=password,
        display_name='Test Subscriber',
        disabled=False
    )
    print(f"Successfully created new user: {user.uid}")
except Exception as e:
    if 'ALREADY_EXISTS' in str(e).upper() or 'EMAIL_EXISTS' in str(e).upper():
        try:
            user = auth.get_user_by_email(email)
            auth.update_user(user.uid, password=password)
            print(f"Successfully updated existing user password: {user.uid}")
        except Exception as update_err:
             print(f"Failed to update existing user: {update_err}")
    else:
        print(f"Error creating new user: {e}")
