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

ใช้คู่มือนี้เพื่อทำความเข้าใจขีดจำกัดของ 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 กิโลไบต์
ขนาดสูงสุดสำหรับเอกสาร 1 MiB (1,048,576 ไบต์)
ข้อจำกัดเกี่ยวกับชื่อฟิลด์ ต้องเป็นอักขระ UTF-8 ที่ถูกต้อง
ขนาดสูงสุดของชื่อฟิลด์ 1,500 ไบต์
ข้อจำกัดบนเส้นทางสนาม
  • ต้องแยกชื่อช่องด้วยจุดเดียว ( . )
  • อาจส่งผ่านเป็นสตริงที่คั่นด้วยจุด ( . ) ของเซ็กเมนต์ โดยที่แต่ละเซ็กเมนต์เป็นชื่อฟิลด์แบบธรรมดาหรือชื่อฟิลด์ที่ยกมา (กำหนดด้านล่าง)
ชื่อฟิลด์แบบง่ายคือชื่อที่ตรงตามเงื่อนไขต่อไปนี้ทั้งหมด:
  • ประกอบด้วยอักขระ az , AZ , 0-9 และขีดล่าง ( _ ) เท่านั้น
  • ไม่ได้เริ่มต้นด้วย 0-9
ชื่อฟิลด์ที่ยกมาเริ่มต้นและลงท้ายด้วยอักขระ backtick ( ` ) ตัวอย่างเช่น foo.`x&y` หมายถึงช่อง x&y ที่ซ้อนอยู่ใต้ช่อง foo หากต้องการสร้างชื่อฟิลด์ด้วยอักขระ backtick ให้หลีกอักขระ backtick ด้วยอักขระแบ็กสแลช ( \ ) เพื่อความสะดวก คุณสามารถหลีกเลี่ยงชื่อฟิลด์ที่มีเครื่องหมายคำพูดโดยการส่งเส้นทางของฟิลด์เป็นออบเจ็กต์ FieldPath ( ตัวอย่างเช่น ดู JavaScript FieldPath )
ขนาดสูงสุดของเส้นทางสนาม 1,500 ไบต์
ขนาดสูงสุดของค่าฟิลด์ 1 MiB - 89 ไบต์ (1,048,487 ไบต์)
ความชัดลึกสูงสุดในแผนที่หรืออาร์เรย์ 20

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

นอกเหนือจากข้อจำกัดเหล่านี้ คุณควรดู แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบตามขนาด ด้วย

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

ดัชนี

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

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

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

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

40,000

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

  • จำนวนรายการดัชนีฟิลด์เดียว
  • จำนวนรายการดัชนีผสม

หากต้องการดูว่า Cloud Firestore เปลี่ยนเอกสารและชุดดัชนีเป็นรายการดัชนีอย่างไร โปรดดู ตัวอย่างการนับรายการดัชนีนี้

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

7.5 กิโลไบต์

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

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

8 มิ.ย

ขนาดรวมคือผลรวมของเอกสารต่อไปนี้:

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

    1,500 ไบต์

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

    เวลาถ่ายทอดสด (TTL)

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

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

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

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

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

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