| import firebase_admin |
| from firebase_admin import credentials, firestore |
| import sys |
|
|
| |
| if sys.stdout.encoding != 'utf-8': |
| try: |
| import io |
| sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') |
| except Exception: |
| pass |
|
|
| |
| 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 |
| |
| |
| 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() |
|
|