Các loại hoạt động của Cơ sở dữ liệu theo thời gian thực của Firebase

Lệnh trình phân tích tài nguyên của Cơ sở dữ liệu theo thời gian thực Firebase

Để tạo báo cáo về tốc độ và mức sử dụng băng thông cho các hoạt động trong thực thể Cơ sở dữ liệu theo thời gian thực, hãy dùng lệnh sau:

firebase database:profile
Tuỳ chọn gắn cờ Nội dung mô tả
-h, --help Thông tin về mức sử dụng dữ liệu đầu ra.
-o, --output FILENAME Lưu đầu ra vào tệp được chỉ định.
-i, --input FILENAME Tạo báo cáo dựa trên tệp được chỉ định thay vì nhật ký luồng từ máy chủ.
-d, --duration SECONDS Thu thập thông tin sử dụng cơ sở dữ liệu cho số giây được chỉ định.
--raw Xuất số liệu thống kê thô được thu thập dưới dạng tệp JSON được phân tách bằng dòng mới.

Loại thao tác

kết nối đồng thời

Thao tác này phản ánh việc kết nối theo thời gian thực với cơ sở dữ liệu (ví dụ: khi một ứng dụng mới kết nối thông qua SDK). Kết nối RESTful không được phản ánh trong các hoạt động kết nối đồng thời.

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

ngắt kết nối đồng thời

Việc ngắt kết nối đồng thời phản ánh một kết nối đã ngắt kết nối khỏi cơ sở dữ liệu (ví dụ: khi ứng dụng ngắt kết nối hoặc đăng tắt).

{
    "name": "concurrent-disconnect",
    "timestamp": 1484776341844
}

realtime-write

Ghi yêu cầu từ kết nối theo thời gian thực. Ví dụ: thao tác set()push() cho ứng dụng web. Yêu cầu xoá cũng được tính là thao tác realtime-write và phản ánh số lượt ghi 0 byte.

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

realtime-transaction

Loại thao tác này bao gồm các giao dịch được thực hiện thông qua kết nối theo thời gian thực. Bạn có thể đã thử và thử lại không thành công cho các giao dịch lặp lại.

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

cập nhật theo thời gian thực

Các thao tác theo thời gian thực này cho bản cập nhật phản ánh việc ghi đè dữ liệu cụ thể, chứ không phải các thao tác ghi chung chung hơn trong realtime-write.

{
    "allowed": true,
    "bytes": 5,
    "millis": 2,
    "name": "realtime-update",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538769
}

listener-listen

Các thao tác này phản ánh yêu cầu ban đầu về dữ liệu tại một vị trí cụ thể của ứng dụng. Ví dụ: phương thức on() hoặc once() cho ứng dụng web.

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

trình nghe thông báo

Thao tác này bao gồm dữ liệu được gửi từ máy chủ đến mọi ứng dụng đang theo dõi tại một vị trí nhất định sau mọi thao tác ghi và cập nhật. Thay đổi đối với dữ liệu sẽ dẫn đến một hoạt động truyền tin. Tuy nhiên, bạn có thể thấy 0 thông tin cập nhật nếu không có ứng dụng nào đang lắng nghe.

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

Các thao tác này phản ánh các ứng dụng nghe mà ký hiệu ra hoặc ngừng nghe thông qua các phương thức tách (ví dụ: off() cho web hoặc removeAllObservers cho iOS).

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

đọc khi nghỉ ngơi

Các yêu cầu GET thông qua API 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
}

nghỉ-ghi

Các yêu cầu PUTPOST thông qua API REST. Các yêu cầu DELETE phản ánh phép toán rest-write 0 byte.

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

giao dịch thu hồi

Đối với hành vi giống như giao dịch, hãy sử dụng Yêu cầu có điều kiện. Thao tác rest-transaction ghi lại các yêu cầu bằng tiêu đề Etag hoặc if-match.

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

cập nhật nghỉ

Các bản cập nhật thông qua API REST phản ánh các yêu cầu PATCH.

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

on-disconnect-put

Các thao tác này phản ánh việc bổ sung trình nghe onDisconnect để ghi các thao tác. Ví dụ: khi bạn sử dụng onDisconnect().setValue().

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

on-disconnect-update

Các thao tác này phản ánh việc bổ sung trình nghe onDisconnect để cập nhật thao tác. Ví dụ: khi bạn sử dụng onDisconnect().updateChildren().

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

khi ngắt kết nối-huỷ

Các thao tác này phản ánh việc xoá trình nghe on nướng (Ngắt kết nối). Ví dụ: khi bạn sử dụng onDisconnect().set().cancel().

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

run-on-disconnect

Các thao tác này phản ánh việc kích hoạt trình nghe onDisconnect. Khi một ứng dụng theo thời gian thực ngắt kết nối sau khi thêm ít nhất một trình nghe onDisconnect, trình phân tích tài nguyên sẽ ghi lại một thao tác run-on-disconnect duy nhất để phản ánh các byte và thời gian tổng hợp của tất cả trình nghe onDisconnect được kích hoạt.

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