การใช้งานและขีดจำกัด

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

ติดตามการใช้งาน

เปิด Cloud Firestore เพื่อตรวจสอบการใช้งาน Cloud Firestore แท็บการใช้งาน ในคอนโซล Firebase ใช้แดชบอร์ดเพื่อวัดการใช้งานของคุณใน ระยะเวลา

การใช้งานโดยละเอียดในคอนโซล Google Cloud

เมื่อสร้างโปรเจ็กต์ Firebase เท่ากับคุณสร้างโปรเจ็กต์ Google Cloud ด้วย โควต้า Cloud Firestore API และ โควต้าของ App Engine หน้าในคอนโซล Google Cloud ติดตามการใช้งานและโควต้า Cloud Firestore

โควต้าฟรี

Cloud Firestore มีโควต้าฟรีที่ให้คุณเริ่มต้นใช้งาน ฐานข้อมูล (default) ของคุณโดยไม่มีค่าใช้จ่าย จำนวนโควต้าฟรีแสดงอยู่ด้านล่าง หากต้องการโควต้าเพิ่ม คุณต้องเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Google Cloud

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

เฉพาะฐานข้อมูล (default) เท่านั้นที่มีสิทธิ์รับโควต้าฟรี

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

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

  • การใช้ฐานข้อมูลที่มีชื่อ (ไม่ใช่ค่าเริ่มต้น)
  • ลบ TTL
  • ข้อมูล PITR
  • ข้อมูลสำรอง
  • การดำเนินการกู้คืน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเรียกเก็บเงินฟีเจอร์เหล่านี้ โปรดดู ราคาพื้นที่เก็บข้อมูล

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

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

ฐานข้อมูล

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

100

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

คอลเล็กชัน เอกสาร และฟิลด์

ขีดจำกัด รายละเอียด
ข้อจำกัดของรหัสคอลเล็กชัน
  • ต้องเป็นอักขระ 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 (เช่น ดูฟิลด์เส้นทาง 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
ขีดจำกัดเวลาสำหรับธุรกรรม 270 วินาที โดยมีเวลาหมดอายุเมื่อไม่มีการใช้งาน 60 วินาที

ดัชนี

ขีดจำกัดต่อไปนี้มีผลกับดัชนีช่องเดียวและดัชนีผสม

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

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

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

40,000 คน

จำนวนรายการดัชนีคือผลรวมของสิ่งต่อไปนี้สำหรับเอกสาร

  • จำนวนรายการดัชนีช่องเดียว
  • จำนวนรายการดัชนีผสม

หากต้องการดูว่า Cloud Firestore เปลี่ยนเอกสารและชุดของ จัดทำดัชนีลงในรายการดัชนี โปรดดู ตัวอย่างจำนวนรายการดัชนีนี้

จำนวนฟิลด์สูงสุดในดัชนีผสม 100
ขนาดสูงสุดของรายการดัชนี

7.5 KiB

หากต้องการดูว่า Cloud Firestore คำนวณขนาดรายการดัชนีอย่างไร โปรดดู ขนาดรายการดัชนี

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

8 MiB

ขนาดโดยรวมคือผลรวมของสิ่งต่อไปนี้สำหรับเอกสาร

  • ผลรวมของขนาดรายการดัชนีช่องเดียวของเอกสาร
  • ผลรวมของขนาดรายการดัชนีผสมของเอกสาร
  • ขนาดสูงสุดของค่าช่องที่จัดทำดัชนี

    1500 ไบต์

    ระบบจะตัดค่าของช่องที่มีขนาดเกิน 1,500 ไบต์ การค้นหาที่เกี่ยวข้องกับ ค่าของช่องที่ถูกตัดอาจแสดงผลลัพธ์ที่ไม่สอดคล้องกัน

    Time to Live (TTL)

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

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

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

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

    ขีดจำกัด รายละเอียด
    จำนวนรวมสูงสุดของทั้งคำขอส่งออกและนำเข้าสำหรับโปรเจ็กต์ที่อนุญาตต่อนาที 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 (ไม่ได้รับอนุญาต&r;
    จำนวนนิพจน์สูงสุดที่ประเมินต่อคำขอ 1,000 ราย
    ขนาดสูงสุดของชุดกฎ ชุดกฎจะต้องเป็นไปตามขีดจำกัด 2 ขนาดดังนี้
    • ขนาดสูงสุดของแหล่งที่มาของข้อความชุดกฎที่ 256 KB ที่เผยแพร่จากคอนโซล Firebase หรือจาก CLI โดยใช้ firebase deploy.
    • ขนาดสูงสุด 250 KB สำหรับขนาดของชุดกฎที่คอมไพล์แล้ว เมื่อ Firebase ประมวลผลแหล่งที่มาและทำให้แหล่งที่มาทำงานบน แบ็กเอนด์

    จัดการการใช้จ่าย

    กำหนดงบประมาณรายเดือนและการแจ้งเตือนเพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่คาดคิดในบิล

    กำหนดงบประมาณรายเดือน

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

    หากต้องการกำหนดงบประมาณ ให้ไปที่การเรียกเก็บเงิน ในคอนโซล Google Cloud และสร้างงบประมาณสำหรับ บัญชีสำหรับการเรียกเก็บเงินใน Cloud คุณสามารถใช้การตั้งค่าการแจ้งเตือนเริ่มต้น หรือปรับเปลี่ยน ให้ส่งการแจ้งเตือนในเปอร์เซ็นต์ที่แตกต่างกันของงบประมาณรายเดือน

    ดูข้อมูลเพิ่มเติมเกี่ยวกับ การตั้งค่างบประมาณและการแจ้งเตือนงบประมาณ