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_control — مباشر من Firebase
جاري التحميل...
📡 Remote Config الإضافية
📡 إرسال إشعار
🚫 حظر جهاز
🛡 Firestore Security Rules — مطلق الصلاحيات للأدمن
📌 ما تفعله هذه Rules:
✅ المستخدمون المسجلون (auth) — لهم قراءة كاملة على app_config وبعض المجموعات
✅ الأدمن فقط — لهم الكتابة والحذف والتعديل على كل شيء
✅ التطبيق (غير مسجل) — يقرأ فقط app_config (remote config, version)
✅ banned_devices — يُقرأ بدون auth للتحقق من الحظر
🔒 vip_users, codes, notifications — محمية بالكامل من الخارج
✅ الأدمن فقط — لهم الكتابة والحذف والتعديل على كل شيء
✅ التطبيق (غير مسجل) — يقرأ فقط 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();
}
}
}
📦 نسخة بديلة — Open للتطوير فقط (خطر ⚠)
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true; // ⚠ للتطوير فقط — لا تستخدم في الإنتاج
}
}
}
⚙️ إعدادات الاشتراكات والدعم
🤖 إعدادات بوت Telegram