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

ใช้คำแนะนำนี้เพื่อทำความเข้าใจ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 มีโควต้าฟรีที่ช่วยให้คุณเริ่มต้นใช้งานได้โดยไม่มีค่าใช้จ่าย หากต้องการโควต้าเพิ่มเติม คุณต้อง เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์Google Cloudของคุณ

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

ตารางต่อไปนี้สรุปจำนวนโควต้าฟรี

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

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

  • การลบ TTL
  • ข้อมูล PITR
  • ข้อมูลสำรอง
  • การดำเนินการกู้คืน
  • การดำเนินการโคลน

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

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

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

ดัชนี

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

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

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

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

40,000 รายการ

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

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

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

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

7.5 KiB

ดูวิธีที่ Cloud Firestore คำนวณขนาดรายการดัชนีได้ที่ ขนาดรายการดัชนี

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

8 MiB

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

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

    1,500 ไบต์

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

    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 ประมวลผลแหล่งที่มาและทำให้ใช้งานได้ในแบ็กเอนด์

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

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

    ตั้งงบประมาณรายเดือน

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

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

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