import firebase_admin from firebase_admin import credentials, firestore import sys # Configure stdout for UTF-8 if sys.stdout.encoding != 'utf-8': try: import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') except Exception: pass # Initialize with project ID only to trigger ADC if not firebase_admin._apps: try: firebase_admin.initialize_app(options={'projectId': 'buddy-math-dev'}) print("✅ Initialized using Applications Default Credentials (ADC).") except Exception as e: print(f"❌ Failed to initialize using ADC: {e}") sys.exit(1) db = firestore.client() def find_dotan_admin(): print("Searching for 'Dotan Admin' or 'דותן אדמין' in 'buddy-math-dev'...") try: docs = db.collection('users').stream() found = False for doc in docs: data = doc.to_dict() name = data.get('name', 'N/A') if 'admin' in name.lower() or 'אדמין' in name: print(f"FOUND: ID: {doc.id} | Name: {name}") wallet = data.get('wallet', {}) balance = wallet.get('token_balance') print(f"Balance: {balance}") found = True # Update if balance is negative or requested if balance and balance < 0: new_balance = 464400 print(f"FIXING balance to {new_balance}...") db.collection('users').doc(doc.id).update({ 'wallet.token_balance': new_balance }) print("✅ SUCCESS: Balance updated.") if not found: print("No admin users found.") except Exception as e: print(f"❌ Error during Firestore query: {e}") if __name__ == "__main__": find_dotan_admin()