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

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

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

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

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

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

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

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