Dashboard
firebase · totvq-8e439
LIVE
VIP نشط
أكواد متاحة
سيرفرات فعالة
محظورون
ضيوف اليوم
الإصدار الحالي
⚡ تحكم سريع
📈 نشاط المستخدمين — 24 ساعة
🖥 حالة السيرفرات
⏱ آخر نشاط الضيوف
➕ إضافة مشترك VIP جديد
المستخدمالحالةالاشتراك المتبقيالسيرفرآخر دخولDevice IDالجلساتإجراء
الكودالباقةالمدةالحالةDevice IDتاريخ الاستخدام
⏱ ضيوف اليوم
➕ إضافة سيرفر جديد
📡 مراقبة السيرفرات
🚀 إدارة الإصدار الحالي
تحديث إجباري
تحديث اختياري
🧪 برنامج Beta
تفعيل Beta
📋 سجل الإصدارات
🎮 مفاتيح النظام حساسة
maintenanceوضع الصيانة — يظهر شاشة الصيانة
lockedقفل التطبيق — يمنع الدخول كلياً
guest_onlyوضع Guests فقط — يعطل تسجيل الدخول
use_proxyاستخدام Proxy / Worker — _useProxy
🌐 الاتصال بالسيرفر RC Class
server_url_serverUrl — الرابط الاحتياطي للسيرفر
username_username — بيانات الدخول
password_password — كلمة السر
proxy_url_proxyUrl — رابط Worker / Proxy
cache_minutes_cacheMinutes — مدة الكاش (دقائق)
💬 رسائل التطبيق
maint_msg_maintMsg — رسالة الصيانة
lock_msg_lockMsg — رسالة القفل
💳 الاشتراك والدعم RC Class
telegram_telegram — رابط قناة Telegram
whatsapp_whatsapp — رقم واتساب الدعم
sub_redirect_subRedirect — وجهة الاشتراك
sub_url_subUrl — رابط صفحة الاشتراك
guest_limit_guestLimit — حد قنوات الضيف
🔄 التحديثات عبر RC _minVersion
min_version_minVersion — الحد الأدنى للإصدار المسموح
update_url_updateUrl — رابط التحديث على المتجر
⚡ أوامر مخصصة مباشرة
جاري التحميل...
📡 Remote Config الإضافية
📡 إرسال إشعار
🚫 حظر جهاز
🛡 Firestore Security Rules — مطلق الصلاحيات للأدمن
📌 ما تفعله هذه Rules:
المستخدمون المسجلون (auth) — لهم قراءة كاملة على app_config وبعض المجموعات
الأدمن فقط — لهم الكتابة والحذف والتعديل على كل شيء
التطبيق (غير مسجل) — يقرأ فقط app_config (remote config, version)
banned_devices — يُقرأ بدون auth للتحقق من الحظر
🔒 vip_users, codes, notifications — محمية بالكامل من الخارج
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { // ════════════════════════════════════════════════════ // HELPER FUNCTIONS // ════════════════════════════════════════════════════ // المستخدم مسجل دخول function isAuth() { return request.auth != null; } // المستخدم أدمن (أضف إيميلك هنا) function isAdmin() { return isAuth() && ( request.auth.token.email == 'admin@totv.app' || request.auth.token.email == 'superadmin@totv.app' ); } // بيانات البيانات قادمة من التطبيق (بدون تعديل) function notChangingProtectedFields() { return !('banned' in request.resource.data) && !('admin' in request.resource.data); } // ════════════════════════════════════════════════════ // APP CONFIG — قراءة عامة، كتابة للأدمن فقط // ════════════════════════════════════════════════════ match /app_config/{doc} { allow read: if true; // التطبيق يحتاج RC بدون تسجيل allow write: if isAdmin(); // الكتابة للأدمن فقط } // ════════════════════════════════════════════════════ // VERSION HISTORY — قراءة للمسجلين، كتابة للأدمن // ════════════════════════════════════════════════════ match /version_history/{doc} { allow read: if isAuth(); allow write: if isAdmin(); } // ════════════════════════════════════════════════════ // VIP USERS — محمية بالكامل // ════════════════════════════════════════════════════ match /vip_users/{userId} { // المستخدم يقرأ بياناته فقط allow read: if isAdmin() || (isAuth() && request.auth.uid == userId); allow write: if isAdmin(); } // ════════════════════════════════════════════════════ // ACTIVATION CODES — الكتابة للتطبيق (استخدام كود) // ════════════════════════════════════════════════════ match /activation_codes/{code} { allow read: if isAuth() || isAdmin(); // السماح للتطبيق باستخدام الكود (تحديث used فقط) allow update: if isAuth() && request.resource.data.diff(resource.data).affectedKeys() .hasOnly(['used','device_id','used_at']) && resource.data.used == false; allow create, delete: if isAdmin(); } // ════════════════════════════════════════════════════ // BANNED DEVICES — قراءة عامة للتحقق // ════════════════════════════════════════════════════ match /banned_devices/{deviceId} { allow read: if true; // التطبيق يتحقق من الحظر allow write: if isAdmin(); } // ════════════════════════════════════════════════════ // SERVERS — قراءة للمسجلين فقط // ════════════════════════════════════════════════════ match /servers/{serverId} { allow read: if isAuth(); allow write: if isAdmin(); } // ════════════════════════════════════════════════════ // GUEST WATCH — يكتب التطبيق بياناته فقط // ════════════════════════════════════════════════════ match /guest_watch/{deviceId} { allow read: if isAdmin(); // التطبيق يكتب/يحدث بياناته الخاصة allow create, update: if true && notChangingProtectedFields(); allow delete: if isAdmin(); } // ════════════════════════════════════════════════════ // NOTIFICATIONS — قراءة للتطبيق، كتابة للأدمن // ════════════════════════════════════════════════════ match /notifications/{notifId} { allow read: if true; allow write: if isAdmin(); } // ════════════════════════════════════════════════════ // DENY EVERYTHING ELSE // ════════════════════════════════════════════════════ match /{document=**} { allow read, write: if isAdmin(); } } }
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; // ⚠ للتطوير فقط — لا تستخدم في الإنتاج } } }
⚙️ إعدادات الاشتراكات والدعم
🤖 إعدادات بوت Telegram