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
}

即時寫入

從即時連線寫入要求。例如,網路用戶端的 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
}

聽眾播送

這項作業涵蓋每次執行寫入和更新作業後,從伺服器傳送至任何及所有用戶端的資料。變更資料會導致廣播作業產生。不過,如果沒有在監聽任何用戶端,則可能會看到 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
}

聽者不聽

這些作業會反映透過卸離方法登出或停止監聽的監聽用戶端 (例如 off() 網頁版或 removeAllObservers (iOS)。

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

休息讀取

GET 要求。

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

靜態寫入

透過 REST API 使用 PUTPOST 要求。DELETE 要求反映的是 0 個位元組的 rest-write 作業。

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-write",
    "path": [],
    "timestamp": 1484775917216
}

休息交易

如果是類似交易的行為,請使用條件式要求rest-transaction 作業會使用 Etagif-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
}

on-disconnect-update

這些作業會反映新增的 onDisconnect 事件監聽器來更新作業。例如使用 onDisconnect().updateChildren() 時。

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

on-disconnect-cancel

這些作業反映了移除中斷連線事件監聽器。例如使用 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
}