أمر محلّل قاعدة بيانات Firebase في الوقت الفعلي
لإنشاء تقرير حول السرعة واستخدام النطاق الترددي للعمليات في مثيل قاعدة بيانات الوقت الفعلي، استخدم الأمر التالي:
firebase database:profile
خيارات الإبلاغ | الوصف |
---|---|
-h, --help |
معلومات استخدام النتائج |
-o, --output FILENAME |
احفظ الإخراج في الملف المحدّد. |
-i, --input FILENAME |
إنشاء التقرير استنادًا إلى الملف المحدّد بدلاً من سجلّات البث من الخادم. |
-d, --duration SECONDS |
اجمع معلومات استخدام قاعدة البيانات للعدد المحدد من الثواني. |
--raw |
استخرِج الإحصاءات الأولية التي تم جمعها على هيئة JSON جديدة ومفصولة بفواصل. |
أنواع العمليات
اتصال متزامن
تعكس هذه العملية الاتصالات في الوقت الفعلي بقاعدة البيانات (على سبيل المثال، عندما يتصل عميل جديد عبر SDK). لا تنعكس اتصالات REST في عمليات الاتصال المتزامن.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
انقطاع اتصال متزامن
تعكس عمليات انقطاع الاتصال المتزامنة الاتصال الذي انقطع من قاعدة البيانات (على سبيل المثال، عندما ينقطع الاتصال بعميل أو يقوم بتسجيل خروجه).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
كتابة الطلبات من الاتصالات في الوقت الفعلي على سبيل المثال، عمليتا set()
وpush()
لبرامج الويب تُحتسَب طلبات الحذف أيضًا كعمليات realtime-write
، وهي تعرض عمليات كتابة بقيمة 0 بايت.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
realtime-transaction
يشمل نوع العملية هذا المعاملات التي أُجريَت من خلال الاتصالات في الوقت الفعلي. قد تكون المعاملات المتكرّرة ناتجة عن المحاولات الفاشلة وعمليات إعادة المحاولة.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
تعديل في الوقت الفعلي
تعكس عمليات التحديث في الوقت الفعلي هذه تجاوز بيانات معيّنة، وليس
عمليات الكتابة الأكثر عمومية في realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
تعكس هذه العمليات الطلب الأولي للبيانات في موقع محدد من العميل. على سبيل المثال، طريقة on()
أو once()
لبرامج الويب.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
بث مستمع
تغطي هذه العملية البيانات المرسلة من الخادم إلى أي وجميع العملاء الذين يستمعون في موقع معين بعد كل عملية كتابة وتحديث. يؤدي تغيير البيانات إلى إجراء عملية بث. ومع ذلك، قد ترى 0 تحديثات إذا لم يكن هناك أي عملاء يستمعون.
{ "bytes": 56, // Total bytes sent across clients "clientsUpdated": 3, // This may be 0 if no clients are listening "millis": 17, "name": "listener-broadcast", "path": [ "baz", "mar" ], "timestamp": 1484775969928 }
listener-unlisten
تعكس هذه العمليات برامج الاستماع التي توقِّع أو تتوقف عن الاستماع
من خلال طرق الفصل (على سبيل المثال، off()
للويب أو removeAllObservers
لنظام التشغيل iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
الراحة للقراءة
طلبات GET
من خلال
REST API
{ "allowed": true, "bytes": 348, // This would be 0 if the read data was null "millis": 26, "name": "rest-read", "path": [], "querySet": [ { "default": true, "endIndexValue": "[MAX_NAME]", "equality": false, "index": {}, "limit": null, "range": false, "simpleLimit": false, "startIndexValue": "[MIN_NAME]", "viewFrom": null } ], "timestamp": 1484775747416 }
تعديل النص
طلبات PUT
وPOST
من خلال REST API.
تعكس طلبات DELETE
عمليات rest-write
بحجم 0 بايت.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
معاملة غير مكتملة
بالنسبة إلى السلوك الذي يشبه المعاملات، استخدِم
الطلبات المشروطة.
تسجّل العملية rest-transaction
الطلبات باستخدام العناوين Etag
أو if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
تعديل بشأن الراحة
تعكس التحديثات من خلال واجهة برمجة تطبيقات REST طلبات PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
تعكس هذه العمليات إضافة مستمعين onDisconnect
لكتابة العمليات. على سبيل المثال، عند استخدام onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
تعكس هذه العمليات إضافة مستمعين onDisconnect
لتعديل العمليات. على سبيل المثال، عند استخدام onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
عند إلغاء الربط
تعكس هذه العمليات إزالة أدوات onإلغاء الربط.
على سبيل المثال، عند استخدام onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
تعكس هذه العمليات كيفية تشغيل مستمعي onDisconnect
.
عندما ينقطع اتصال عميل في الوقت الفعلي بعد إضافة مستمع onDisconnect
واحد على الأقل،
يسجّل محلّل عملية run-on-disconnect
واحدة
لعرض وحدات البايت المجمَّعة والوقت المجمَّعة لجميع مستمعي onDisconnect
التي تم تشغيلها.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }