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

ใช้คู่มือนี้เพื่อทำความเข้าใจขีดจำกัดของ 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 GiB
การอ่านเอกสาร 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 (เช่น ดู 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

ดัชนี

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

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

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

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

40,000

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

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

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

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

7.5 KiB

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

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

8 MiB

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

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

    1,500 ไบต์

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

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

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

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

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

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

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