ประเภทการดำเนินการของฐานข้อมูลเรียลไทม์ของ Firebase

คำสั่งเครื่องมือสร้างโปรไฟล์ Firebase Realtime Database

ในการสร้างรายงานการใช้ความเร็วและแบนด์วิดท์สำหรับการใช้งานใน อินสแตนซ์ 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
}

ยกเลิกการเชื่อมต่อพร้อมกัน

การยกเลิกการเชื่อมต่อพร้อมกันจะแสดงการเชื่อมต่อที่ถูกตัดการเชื่อมต่อจาก ฐานข้อมูล (เช่น เมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อหรือออกจากระบบ)

{
   
"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 รายการผ่าน 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
}

การอัปเดตการพักผ่อน

การอัปเดตผ่าน REST API จะเป็นไปตามคำขอ PATCH รายการ

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

เมื่อยกเลิกการเชื่อมต่อ

การดำเนินการเหล่านี้แสดงการเพิ่ม Listener onDisconnect ที่จะเขียน การดำเนินงาน เช่น เมื่อคุณใช้ onDisconnect().setValue()

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

การอัปเดตเมื่อยกเลิกการเชื่อมต่อ

การดำเนินการเหล่านี้แสดงถึงการเพิ่ม Listener onDisconnect ที่จะอัปเดต การดำเนินงาน เช่น เมื่อคุณใช้ onDisconnect().updateChildren()

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

เมื่อยกเลิกการเชื่อมต่อ-ยกเลิก

การดำเนินการเหล่านี้แสดงถึงการนำ Listener บน "เลิกเชื่อมต่อ" ออก เช่น เมื่อคุณใช้ onDisconnect().set().cancel()

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

เรียกใช้เมื่อยกเลิกการเชื่อมต่อ

การดำเนินการเหล่านี้แสดงถึงการทริกเกอร์ Listener onDisconnect เมื่อไคลเอ็นต์แบบเรียลไทม์ยกเลิกการเชื่อมต่อหลังจากเพิ่ม onDisconnect อย่างน้อย 1 รายการ Listener เครื่องมือสร้างโปรไฟล์จะบันทึกการทำงาน run-on-disconnect ครั้งเดียว เพื่อแสดงไบต์และเวลารวมของ Listener onDisconnect ทั้งหมด ทริกเกอร์

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