Các loại thao tác trong Cơ sở dữ liệu theo thời gian thực của Firebase

Lệnh Firebase Realtime Database cho trình phân tích tài nguyên

Để 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ủa Realtime Database, hãy dùng lệnh sau:

firebase database:profile
Tùy chọn gắn cờ Mô tả
-h, --help Thông tin về mức sử dụng đầu ra.
-o, --output FILENAME Lưu kết quả 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 khỏi máy chủ.
-d, --duration SECONDS Thu thập thông tin về việc sử dụng cơ sở dữ liệu cho số giây đã chỉ định.
--raw Xuất số liệu thống kê thô được thu thập dưới dạng 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 các kết nối theo thời gian thực đến cơ sở dữ liệu (ví dụ: khi một ứng dụng mới sẽ kết nối qua một SDK). Kết nối RESTful không được phản ánh trong hoạt động kết nối đồng thời.

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

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

Ngắt kết nối đồng thời phản ánh một kết nối đã bị ngắt kết nối khỏi (ví dụ: khi máy khách ngắt kết nối hoặc đăng xuất).

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

ghi theo thời gian thực

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

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

giao dịch theo thời gian thực

Loại hoạt động 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. Các giao dịch lặp lại có thể là kết quả của các lần thử và thử lại không thành công.

{
    "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 hoạt động theo thời gian thực này để cập nhật phản ánh tình trạng dư thừa của dữ liệu cụ thể, chứ không phải thì các thao tác ghi tổng quát hơn trong realtime-write.

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

thính- nghe

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

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

thông báo về trình nghe

Thao tác này bao gồm dữ liệu được gửi từ máy chủ đến bất kỳ và tất cả máy khách đang nghe tại một vị trí nhất định sau mỗi thao tác ghi và cập nhật. Chiến lược phát hành đĩa đơn thì việc thay đổi dữ liệu sẽ dẫn đến thao tác truyền tin. Tuy nhiên, bạn có thể thấy 0 nội dung cập nhật nếu không có khách hàng nào 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
}

không nghe-nghe

Những thao tác này phản ánh những ứng dụng đang lắng nghe rời khỏi hoặc ngừng lắng nghe thông qua các phương thức tách (ví dụ: off() đối với 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 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
}

ghi-ghi-thời gian

PUTPOST yêu cầu thông qua REST API. Các yêu cầu DELETE phản ánh Các toán tử rest-write có kích thước 0 byte.

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

thời gian còn lạ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 Etag hoặc if-match .

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

thông tin cập nhật về thời gian nghỉ ngơi

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
}

khi-ngắt kết nối-đặt

Các thao tác này phản ánh việc thêm trình nghe onDisconnect để ghi các toán tử. 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
}

cập nhật khi ngắt kết nối

Các thao tác này phản ánh việc thêm trình nghe onDisconnect để cập nhật các toán tử. 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 loại bỏ trình nghe onNgắ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
}

ngắt kết nối khi chạy

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 onDisconnect trình nghe, trình phân tích sẽ ghi lại một thao tác run-on-disconnect để phản ánh số byte và thời gian tổng hợp của tất cả trình nghe onDisconnect đã kích hoạt.

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