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

أمر ملف شخصي واحد (Firebase Realtime Database)

لإنشاء تقرير حول السرعة واستخدام معدل نقل البيانات للعمليات في مثيل Realtime Database، يمكنك استخدام الأمر التالي:

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
}

الكتابة في الوقت الفعلي

كتابة الطلبات من عمليات التواصل في الوقت الفعلي على سبيل المثال: set() وpush() العمليات لعملاء الويب. يتم احتساب طلبات الحذف أيضًا على أنّها realtime-write. وتعكس عمليات الكتابة بحجم 0 بايت.

{
    "allowed": true, // If security rules allow the operation
    "bytes": 1,
    "millis": 2,
    "name": "realtime-write",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538763
}

معاملة في الوقت الفعلي

يتضمّن هذا النوع من العمليات المعاملات التي تتم من خلال عمليات اتصال في الوقت الفعلي. قد تكون المعاملات المتكررة ناتجة عن محاولات فاشلة ومحاولات متكررة.

{
    "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
}

استمِع إلى أغانيك

تعكس هذه العمليات الطلب الأولي للبيانات في موقع معين من لعميلك. على سبيل المثال، الطريقة on() أو once() لبرامج الويب.

{
    "allowed": true,
    "bytes": 0,
    "millis": 26,
    "name": "listener-listen",
    "path": [
        "foo"
    ],
    "querySet": [],
    "timestamp": 1484776335024,
    "unIndexed": false
}

البث المستمع

تغطي هذه العملية البيانات المرسلة من الخادم إلى أي وجميع العملاء الذين يستمعون في موقع معين بعد كل عملية كتابة وتحديث. تشير رسالة الأشكال البيانية التغيير في البيانات إلى عملية بث. ومع ذلك، قد لا تظهر لك أي تعديلات. إذا لم يكن هناك أي عملاء يستمعون.

{
    "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
}

عدم الاستماع إلى المستمعين

تعكس هذه العمليات العملاء الذين يستمعون ويوافقون على الاستماع أو يتوقفون عن الاستماع من خلال طرق الفصل (مثل، off() للويب، أو removeAllObservers لنظام التشغيل iOS).

{
    "name": "listener-unlisten",
    "path": [
        "foo"
    ],
    "timestamp": 1484776335044
}

قراءة البقية

طلبات GET من خلال REST واجهة برمجة التطبيقات.

{
    "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 واجهة برمجة التطبيقات. ظهور 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 API طلبات PATCH.

{
    "allowed": true,
    "bytes": 5,
    "millis": 11,
    "name": "rest-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

عند قطع الاتصال

تعكس هذه العمليات إضافة مستمعين إلى onDisconnect لكتابة العمليات التجارية. على سبيل المثال، عند استخدام onDisconnect().setValue().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-put",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

تحديث عند انقطاع الاتصال

تعكس هذه العمليات إضافة أدوات معالجة بيانات onDisconnect إلى آخر الأخبار. العمليات التجارية. على سبيل المثال، عند استخدام onDisconnect().updateChildren().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

إلغاء الربط عند إلغاء الاتصال

تعكس هذه العمليات إزالة المستمعين على قطع الاتصال. على سبيل المثال، عند استخدام onDisconnect().set().cancel().

{
    "millis": 2,
    "name": "on-disconnect-cancel",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

تشغيل عند قطع الاتصال

تعكس هذه العمليات عملية تشغيل مستمعي onDisconnect. عند قطع اتصال عميل في الوقت الفعلي بعد إضافة onDisconnect واحد على الأقل المستمع، يسجل المحلل عملية run-on-disconnect واحدة لعرض وحدات البايت المجمّعة ووقت الاستماع لجميع مستمعي onDisconnect مُشغَّلة.

{
    "bytes": 4,
    "millis": 2,
    "name": "run-on-disconnect",
    "timestamp": 1484775969930
}