ต่อไปนี้เป็นข้อจำกัดเกี่ยวกับการจัดเก็บข้อมูลและการดำเนินการใน Firebase Realtime Database หากต้องการปรับขนาดให้เกินขีดจำกัดเหล่านี้ ให้ใช้ฐานข้อมูลหลายรายการ
ทั่วโลก
| การดำเนินการ | ขีดจำกัด | คำอธิบาย |
|---|---|---|
| การเชื่อมต่อพร้อมกัน | 200,000* | การเชื่อมต่อพร้อมกันจะเทียบเท่ากับอุปกรณ์เคลื่อนที่ แท็บเบราว์เซอร์ หรือแอปเซิร์ฟเวอร์ 1 รายการที่เชื่อมต่อกับฐานข้อมูล ซึ่งไม่เหมือนกับจำนวนผู้ใช้ทั้งหมดของแอป เนื่องจากผู้ใช้ไม่ได้เชื่อมต่อพร้อมกันทั้งหมด ตัวอย่างเช่น แอปที่มีผู้ใช้ที่ใช้งานอยู่รายเดือน 10 ล้านคนมักจะมีการเชื่อมต่อพร้อมกันน้อยกว่า 200,000 รายการ จำนวนการเชื่อมต่อพร้อมกันสูงสุดจะขึ้นอยู่กับจำนวนผู้ใช้ทั้งหมดและเวลาเฉลี่ยที่ผู้ใช้ใช้ในแอป อย่างไรก็ตาม หากต้องการปรับขนาดให้เกินขีดจำกัดนี้ ให้ลองใช้ฐานข้อมูลหลายรายการ *ขีดจำกัดการเชื่อมต่อพร้อมกันของแพ็กเกจ Spark คือ 100 รายการ |
| การตอบกลับพร้อมกันที่ส่งจากฐานข้อมูลเดียว | ~100,000/วินาที | การตอบกลับรวมถึงการดำเนินการออกอากาศและการอ่านพร้อมกันที่เซิร์ฟเวอร์ส่งจากฐานข้อมูลเดียว ณ เวลาที่กำหนด ขีดจำกัดนี้หมายถึงกลุ่มข้อมูลที่แสดงถึงการดำเนินการอ่านหรือการออกอากาศแต่ละรายการ ซึ่งรวมถึงข้อความ Push ที่ส่งจากฐานข้อมูล คำแนะนำนี้มีไว้สำหรับโหลดที่ต่อเนื่อง แต่ฐานข้อมูลสามารถรองรับการเพิ่มขึ้นอย่างรวดเร็วเป็นครั้งคราวได้ |
| จำนวน Cloud Functions ที่ทริกเกอร์โดยการเขียนครั้งเดียว | 1,000 หรือ 500 ต่อภูมิภาคสำหรับ Cloud Functions v2 | แม้ว่าจะไม่มีการจำกัดจำนวนการดำเนินการอ่านหรือเขียนที่คุณสามารถทริกเกอร์จากฟังก์ชันเดียว แต่การดำเนินการเขียนฐานข้อมูลเดียวจะทริกเกอร์ได้เพียง 1,000 ฟังก์ชัน หรือ 500 ฟังก์ชันต่อภูมิภาคสำหรับ Cloud Functions v2
Cloud Functions จะทริกเกอร์ได้โดยการดำเนินการเขียนเท่านั้น และแต่ละฟังก์ชันยังทริกเกอร์การดำเนินการเขียนเพิ่มเติมที่ทริกเกอร์ฟังก์ชันอื่นๆ ได้อีกด้วย (แต่ละฟังก์ชันมีขีดจำกัด 1, 000 ฟังก์ชันหรือ 500 ฟังก์ชันต่อภูมิภาค) |
| ขนาดของเหตุการณ์เดียวที่ทริกเกอร์โดยการเขียน | 1 MB | ขนาดของเหตุการณ์ประกอบด้วยค่าต่อไปนี้
|
| การโอนข้อมูลไปยัง Cloud Functions | 10 MB/วินาทีอย่างต่อเนื่อง | อัตราของข้อมูลเหตุการณ์ที่ส่งต่อไปยัง Cloud Functions ได้ |
ผังข้อมูล
| พร็อพเพอร์ตี้ | ขีดจำกัด | คำอธิบาย |
|---|---|---|
| ความลึกสูงสุดของโหนดย่อย | 32 | แต่ละเส้นทางในผังข้อมูลต้องมีความลึกไม่เกิน 32 ระดับ |
| ความยาวของคีย์ | 768 ไบต์ | คีย์จะเข้ารหัส UTF-8 และมีบรรทัดใหม่หรืออักขระต่อไปนี้ไม่ได้: $ # [ ] / หรืออักขระควบคุม ASCII (0x00 - 0x1F และ 0x7F) |
| ขนาดสูงสุดของสตริง | 10 MB | ข้อมูลมีการเข้ารหัสแบบ UTF-8 |
การอ่าน
| คำอธิบาย | ขีดจำกัด | หมายเหตุ |
|---|---|---|
| ขนาดของการตอบกลับรายการเดียวที่แสดงโดยฐานข้อมูล | 256 MB | ขนาดของข้อมูลที่ดาวน์โหลดจากฐานข้อมูลในตำแหน่งเดียวควรน้อยกว่า 256 MB สำหรับการดำเนินการอ่านแต่ละครั้ง
หากต้องการดำเนินการอ่านในตำแหน่งที่ใหญ่ขึ้น ให้ลองใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ |
| โหนดทั้งหมดในเส้นทางที่มี Listener หรือการค้นหา | 75 ล้าน* | คุณไม่สามารถฟังหรือค้นหาเส้นทางที่มีโหนดสะสมมากกว่า 75 ล้านโหนด อย่างไรก็ตาม คุณยังคงฟังหรือค้นหาโหนดย่อยได้ ลองเจาะลึกเส้นทางให้มากขึ้น หรือสร้าง Listener หรือการค้นหาแยกต่างหากสำหรับส่วนที่เฉพาะเจาะจงมากขึ้นของเส้นทาง
*คุณไม่สามารถดูเส้นทางที่มีโหนดรวมมากกว่า 30,000 โหนดจากโปรแกรมดูข้อมูลในคอนโซล Firebase |
| ระยะเวลาที่การค้นหาเดียวสามารถทำงานได้ | 15 นาที* | การค้นหาเดียวจะทํางานได้ไม่เกิน 15 นาทีก่อนที่จะล้มเหลว
*การค้นหาเดียวที่ดำเนินการในคอนโซล Firebase จะทำงานได้สูงสุด 5 วินาทีก่อนที่จะล้มเหลว |
การเขียน
| คำอธิบาย | ขีดจำกัด | หมายเหตุ |
|---|---|---|
| อัตราการเขียน | เขียน 1,000 ครั้ง/วินาที | ขีดจำกัดของการดำเนินการเขียนต่อวินาทีในฐานข้อมูลเดียว แม้ว่าจะไม่ใช่ขีดจำกัดที่เข้มงวด แต่หากคุณเขียนข้อมูลมากกว่า 1,000 ครั้งต่อวินาทีอย่างต่อเนื่อง ระบบอาจจำกัดอัตรากิจกรรมการเขียนของคุณ |
| ขนาดของคำขอเขียนรายการเดียวไปยังฐานข้อมูล | 256 MB จาก REST API และ 16 MB จาก SDK | ข้อมูลทั้งหมดในการดำเนินการเขียนแต่ละครั้งควรมีขนาดไม่เกิน 256 MB การอัปเดตแบบหลายเส้นทางจะขึ้นอยู่กับข้อจำกัดด้านขนาดเดียวกัน |
| ไบต์ที่เขียนแล้ว | 64 MB/นาที | จำนวนไบต์ทั้งหมดที่เขียนผ่านการดำเนินการเขียนพร้อมกันในฐานข้อมูล ณ เวลาใดเวลาหนึ่ง |