أنواع عمليات قاعدة بيانات Firebase في الوقت الفعلي

أمر محلّل قاعدة بيانات 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
}