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

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

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

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

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

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

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

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