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