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
}

聽眾播送

這項作業涵蓋從伺服器傳到 每次寫入和更新作業後,都會監聽指定位置。 對資料做出變更就會導致廣播作業不過,你可能會看到 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
}

休息讀取

透過 REST 傳送 GET 要求 也能使用 Google Cloud CLI 或 Compute Engine 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 和 透過 REST 傳送 POST 要求 也能使用 Google Cloud CLI 或 Compute Engine API DELETE 要求會反映 rest-write 作業數,共 0 個位元組。

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