סוגי הפעולות של מסד הנתונים בזמן אמת ב-Firebase

פקודת Firebase Realtime Database של Profiler

כדי ליצור דוח של המהירות והשימוש ברוחב הפס של פעולות במכונה שלכם ב-Realtime Database, משתמשים בפקודה הבאה:

firebase database:profile
אפשרויות לדיווח תיאור
-h, --help מידע על השימוש בפלט.
-o, --output FILENAME שומרים את הפלט בקובץ שצוין.
-i, --input FILENAME יצירת הדוח על סמך הקובץ שצוין במקום יומני השידור מהשרת.
-d, --duration SECONDS איסוף נתוני שימוש במסד נתונים במשך מספר השניות שצוין.
--raw הפלט של הנתונים הסטטיסטיים הגולמיים שנאספו הוא JSON שמופרד בתו שורה חדשה.

סוגי פעולות

חיבור בו-זמני

פעולה זו משקפת חיבורים בזמן אמת למסד הנתונים (לדוגמה, לקוח חדש מתחבר באמצעות SDK). חיבורים מסוג RESTful לא באים לידי ביטוי פעולות חיבור בו-זמניות.

{
    "name": "concurrent-connect",
    "timestamp": 1484776334900
}

concurrent-disconnect

ניתוקים בו-זמנית משקפים חיבור שמתנתק מסד נתונים (לדוגמה, כשלקוח מתנתק או יוצא מהחשבון).

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

עסקה בזמן אמת

סוג הפעולה הזה כולל טרנזקציות שבוצעו דרך חיבורים בזמן אמת. עסקאות חוזרות עשויות להיות תוצאה של ניסיונות כושלים וניסיונות חוזרים.

{
    "allowed": true,
    "bytes": 20,
    "millis": 2,
    "name": "realtime-transaction",
    "path": [
        "foo"
    ],
    "timestamp": 1484776854610
}

realtime-update

הפעולות האלה של עדכונים בזמן אמת משקפות מחיקה של נתונים ספציפיים, ולא את פעולות הכתיבה הכלליות יותר ב-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
}

listener-broadcast

פעולה זו מכסה את הנתונים שנשלחים מהשרת לכל הלקוח ולכל הלקוחות מאזינים במיקום נתון אחרי כל פעולת כתיבה ועדכון. השינוי בנתונים מוביל לביצוע פעולת שידור. עם זאת, יכול להיות שתראו 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
}

rest-read

בקשות 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
}

עדכון למנוחה

עדכונים דרך API ל-REST משקפים בקשות 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
}

on-disconnect-update

הפעולות האלה משקפות את ההוספה של מאזינים ל-onDisconnect לעדכון ב-AI. לדוגמה, כשמשתמשים ב-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
}