โหมดเนทีฟ: โควต้าและขีดจำกัด

หน้านี้อธิบายถึงโควต้าคำขอและขีดจำกัดของ Enterprise Edition สำหรับ Cloud Firestore ในโหมดดั้งเดิม

การใช้งานระดับฟรี

Cloud Firestore ในโหมดดั้งเดิมมีระดับฟรีที่ช่วยให้คุณเริ่มต้นใช้งาน Cloud Firestore ในโหมดดั้งเดิมได้โดยไม่มีค่าใช้จ่าย จำนวนเงินในระดับฟรีแสดงอยู่ในตารางต่อไปนี้

ระบบจะใช้จำนวนเงินในระดับฟรีทุกวันและรีเซ็ตตอนเที่ยงคืนตามเวลาแปซิฟิก

ระดับฟรีใช้ได้กับฐานข้อมูล Cloud Firestore เพียงฐานเดียวต่อโปรเจ็กต์ ฐานข้อมูลแรกที่สร้างในโปรเจ็กต์ที่ไม่มีฐานข้อมูลระดับฟรีจะได้รับระดับฟรี หากลบฐานข้อมูลที่มีระดับฟรีออก ฐานข้อมูลถัดไปที่สร้างขึ้นจะได้รับระดับฟรี

ระดับฟรี โควต้า
ข้อมูลที่จัดเก็บ 1 GiB
หน่วยอ่าน 50,000 หน่วยต่อวัน
หน่วยอัปเดตแบบเรียลไทม์ 50,000 หน่วยต่อวัน
หน่วยเขียน 40,000 หน่วยต่อวัน
การโอนข้อมูลขาออก 10 GiB ต่อเดือน

ขีดจำกัดมาตรฐาน

ตารางต่อไปนี้แสดงขีดจำกัดที่ใช้กับ Cloud Firestore ในโหมดดั้งเดิม ซึ่งเป็นขีดจำกัดที่กำหนดไว้ เว้นแต่จะระบุไว้เป็นอย่างอื่น

ฐานข้อมูล

ขีดจำกัด รายละเอียด
จำนวนฐานข้อมูลสูงสุดต่อโปรเจ็กต์

100

คุณสามารถ ติดต่อทีมสนับสนุน เพื่อขอเพิ่มขีดจำกัดนี้

จำนวนฐานข้อมูลคีย์การเข้ารหัสที่จัดการโดยลูกค้า (CMEK) สูงสุดต่อโปรเจ็กต์

0

โดยค่าเริ่มต้น โควต้าจะเป็น 0 เนื่องจากฟีเจอร์นี้อยู่เบื้องหลังรายการที่อนุญาต คุณสามารถขอเพิ่มโควต้าได้โดยกรอกแบบฟอร์มขอสิทธิ์เข้าถึง CMEK

คอลเล็กชัน เอกสาร และช่อง

ขีดจำกัด รายละเอียด
ข้อจำกัดเกี่ยวกับรหัสคอลเล็กชัน
  • ต้องเป็นอักขระ UTF-8 ที่ถูกต้อง
  • ต้องมีความยาวไม่เกิน 1,500 ไบต์
  • ต้องไม่มีเครื่องหมายทับ (/)
  • ต้องไม่ประกอบด้วยจุดเดี่ยว (.) หรือ จุดคู่ (..) เพียงอย่างเดียว
  • ต้องไม่ตรงกับนิพจน์ทั่วไป __.*__
ความลึกสูงสุดของคอลเล็กชันย่อย 100
ข้อจำกัดเกี่ยวกับรหัสเอกสาร
  • ต้องเป็นอักขระ UTF-8 ที่ถูกต้อง
  • ต้องมีความยาวไม่เกิน 1,500 ไบต์
  • ต้องไม่มีเครื่องหมายทับ (/)
  • ต้องไม่ประกอบด้วยจุดเดี่ยว (.) หรือ จุดคู่ (..) เพียงอย่างเดียว
  • ต้องไม่ตรงกับนิพจน์ทั่วไป __.*__
  • หากคุณนำเข้าเอนทิตี Datastore ลงในฐานข้อมูล Firestore ระบบจะแสดงรหัสเอนทิตีที่เป็นตัวเลขเป็น __id[0-9]+__
ขนาดสูงสุดของชื่อเอกสาร 6 KiB
ขนาดสูงสุดของเอกสาร 1 MiB (1,048,576 ไบต์)
ข้อจำกัดเกี่ยวกับชื่อช่อง
  • ต้องเป็นอักขระ UTF-8 ที่ถูกต้อง
  • ต้องไม่ตรงกับนิพจน์ทั่วไป __.*__
ขนาดสูงสุดของชื่อช่อง 1,500 ไบต์
ข้อจำกัดเกี่ยวกับเส้นทางของช่อง
  • ต้องคั่นชื่อช่องด้วยจุดเดี่ยว (.)
  • สามารถส่งเป็นสตริงของเซกเมนต์ที่คั่นด้วยจุด (.) โดยแต่ละเซกเมนต์จะเป็นชื่อช่องแบบง่ายหรือชื่อช่องที่อยู่ในเครื่องหมายคำพูด (กำหนดไว้ด้านล่าง)
ชื่อช่องแบบง่ายคือชื่อที่ตรงตามเงื่อนไขทั้งหมดต่อไปนี้
  • มีเฉพาะอักขระ a-z, A-Z, 0-9, และขีดล่าง (_)
  • ต้องไม่ขึ้นต้นด้วย 0-9
ชื่อช่องที่อยู่ในเครื่องหมายคำพูดจะขึ้นต้นและลงท้ายด้วยอักขระแบ็กติก (`) เช่น foo.`x&y` หมายถึงช่อง x&y ที่ซ้อนอยู่ใต้ช่อง foo หากต้องการสร้างชื่อช่องที่มีอักขระแบ็กติก ให้ใช้แบ็กสแลช (\) เพื่อหลีกเลี่ยงอักขระแบ็กติก คุณสามารถหลีกเลี่ยงชื่อช่องที่อยู่ในเครื่องหมายคำพูดได้โดยส่งเส้นทางของช่องเป็นออบเจ็กต์ FieldPath (เช่น ดู FieldPath ของ JavaScript)
ขนาดสูงสุดของเส้นทางของช่อง 1,500 ไบต์
ขนาดสูงสุดของค่าช่อง 1 MiB - 89 ไบต์ (1,048,487 ไบต์)
ความลึกสูงสุดของช่องในแผนที่หรืออาร์เรย์

20

ช่องแผนที่และอาร์เรย์จะเพิ่มระดับความลึกโดยรวมของออบเจ็กต์ขึ้น 1 ระดับ ตัวอย่างเช่น ออบเจ็กต์ต่อไปนี้มีความลึกทั้งหมด 3 ระดับ


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

การเขียนและการทำธุรกรรม

ขีดจำกัด รายละเอียด
ขนาดคำขอ API สูงสุด 10 MiB
ขีดจำกัดหน่วยความจำสำหรับการค้นหา 128 MiB
ขีดจำกัดเวลาสำหรับการทำธุรกรรม 270 วินาที โดยมีเวลาหมดอายุเมื่อไม่มีการใช้งาน 60 วินาที
จำนวนการแปลงช่องสูงสุดที่สามารถทำได้กับเอกสารเดียวในการดำเนินการ Commit หรือในการทำธุรกรรม 500

ดัชนี

ขีดจำกัด รายละเอียด
จำนวนดัชนีสูงสุดสำหรับฐานข้อมูล

จำนวนรายการดัชนีสูงสุดสำหรับเอกสารแต่ละรายการ

40,000

จำนวนช่องสูงสุดในดัชนี 100
ขนาดสูงสุดของรายการดัชนี

7.5 KiB

ผลรวมขนาดสูงสุดของรายการดัชนีของเอกสาร

8 MiB

Time to Live (TTL)

ขีดจำกัด รายละเอียด
จำนวนการกำหนดค่าช่องเดียวสูงสุดสำหรับฐานข้อมูล

การกำหนดค่าระดับช่องเดียว สามารถมีการกำหนดค่าหลายรายการสำหรับช่องเดียวกัน ตัวอย่างเช่น การยกเว้นการจัดทำดัชนีช่องเดียวและนโยบาย TTL ในช่องเดียวกัน จะนับเป็นการกำหนดค่าช่องเดียวตามขีดจำกัด

ส่งออก/นำเข้า

การดำเนินการนำเข้าและส่งออกที่จัดการจะมีขีดจำกัดดังต่อไปนี้

ขีดจำกัด รายละเอียด
จำนวนคำขอส่งออกและนำเข้ารวมสูงสุดสำหรับโปรเจ็กต์ที่อนุญาตต่อนาที 20
จำนวนการส่งออกและนำเข้าพร้อมกันสูงสุด 50
จำนวนตัวกรองรหัสคอลเล็กชันสูงสุดสำหรับคำขอส่งออกและนำเข้า 100

กฎความปลอดภัย

ขีดจำกัด รายละเอียด
จำนวนการเรียก exists(), get() และ getAfter() สูงสุดต่อคำขอ
  • 10 สำหรับคำขอเอกสารเดียวและคำขอการค้นหา
  • 20 สำหรับการอ่านเอกสารหลายรายการ การทำธุรกรรม และการเขียนแบบเป็นชุด ขีดจำกัดก่อนหน้า 10 รายการยังใช้กับการดำเนินการแต่ละรายการด้วย

    ตัวอย่างเช่น สมมติว่าคุณสร้างคำขอเขียนแบบเป็นชุดที่มี การดำเนินการเขียน 3 รายการ และกฎความปลอดภัยใช้การเรียกการเข้าถึงเอกสาร 2 รายการเพื่อตรวจสอบการเขียนแต่ละรายการ ในกรณีนี้ การเขียนแต่ละรายการใช้ 2 รายการจาก 10 รายการ และคำขอเขียนแบบเป็นชุดใช้การเรียกการเข้าถึง 6 รายการจาก 20 รายการ

การเกินขีดจำกัดใดขีดจำกัดหนึ่งจะทำให้เกิดข้อผิดพลาด "สิทธิ์ถูกปฏิเสธ"

การเรียกการเข้าถึงเอกสารบางรายการอาจได้รับการแคช และการเรียกที่แคชไว้จะไม่นับรวมในขีดจำกัด

ความลึกสูงสุดของคำสั่ง match ที่ซ้อนกัน 10
ความยาวเส้นทางสูงสุดในเซกเมนต์เส้นทางที่อนุญาตภายในชุดคำสั่งที่ซ้อนกัน match 100
จำนวนตัวแปรการจับเส้นทางสูงสุดที่อนุญาตภายในชุดของ คำสั่ง match ที่ซ้อนกัน 20
ความลึกสูงสุดของการเรียกใช้ฟังก์ชัน 20
จำนวนอาร์กิวเมนต์ของฟังก์ชันสูงสุด 7
จำนวนการผูกตัวแปร let สูงสุดต่อฟังก์ชัน 10
จำนวนการเรียกใช้ฟังก์ชันแบบเรียกซ้ำหรือแบบวนรอบสูงสุด 0 (ไม่อนุญาต)
จำนวนนิพจน์สูงสุดที่ประเมินต่อคำขอ 1,000
ขนาดสูงสุดของชุดกฎ ชุดกฎต้องเป็นไปตามขีดจำกัดขนาด 2 รายการต่อไปนี้
  • ขีดจำกัด 256 KB สำหรับขนาดของแหล่งที่มาของข้อความชุดกฎ ที่เผยแพร่จากคอนโซล Firebase หรือจาก CLI โดยใช้ firebase deploy
  • ขีดจำกัด 250 KB สำหรับขนาดของชุดกฎที่คอมไพล์แล้วซึ่งเป็นผลลัพธ์เมื่อ Firebase ประมวลผลแหล่งที่มาและทำให้ใช้งานได้ในแบ็กเอนด์