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

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

ดัชนี

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

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

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

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

40,000 คน

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

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

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

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

7.5 KiB

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

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

8 MiB

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

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

    1500 ไบต์

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

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

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

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

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

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

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