Mức sử dụng và giới hạn

Hãy dùng hướng dẫn này để nắm được các hạn mức của Cloud Firestore, và xem phần Giá của Cloud Firestore để được giải thích đầy đủ, chi tiết về Chi phí sử dụng Cloud Firestore, bao gồm cả những chi phí cần chú ý.

Giám sát mức sử dụng

Để theo dõi mức sử dụng Cloud Firestore của bạn, hãy mở Cloud Firestore Thẻ Sử dụng trong bảng điều khiển của Firebase. Sử dụng trang tổng quan để đánh giá mức sử dụng của bạn theo các mức giá trị khác nhau khoảng thời gian cụ thể.

Thông tin chi tiết về mức sử dụng trong bảng điều khiển Google Cloud

Khi tạo một dự án Firebase, bạn cũng sẽ tạo một dự án Google Cloud. Chiến lược phát hành đĩa đơn Hạn mức API Cloud FirestoreHạn mức của App Engine các trang trong bảng điều khiển Google Cloud theo dõi hạn mức và mức sử dụng của Cloud Firestore của bạn.

Hạn mức miễn phí

Cloud Firestore cung cấp hạn mức miễn phí để bạn có thể bắt đầu sử dụng cơ sở dữ liệu (default) của bạn mà không mất phí. Số lượng hạn mức miễn phí được liệt kê bên dưới. Nếu cần hạn mức cao hơn, bạn phải bật tính năng thanh toán cho dự án Google Cloud của mình.

Hạn mức được áp dụng hằng ngày và được đặt lại vào khoảng nửa đêm theo giờ Thái Bình Dương.

Chỉ cơ sở dữ liệu (default) mới đủ điều kiện được tính vào hạn mức miễn phí.

Bậc miễn phí Hạn ngạch dung lượng
Dữ liệu đã lưu trữ 1 GiB
Số lần đọc tài liệu 50.000 mỗi ngày
Hoạt động ghi tài liệu 20.000 sự kiện mỗi ngày
Xoá tài liệu 20.000 sự kiện mỗi ngày
Chuyển dữ liệu ra ngoài 10 GiB/tháng

Các thao tác và tính năng sau không bao gồm việc sử dụng miễn phí. Bạn phải bật tính năng thanh toán để sử dụng các tính năng sau:

  • Sử dụng cơ sở dữ liệu đã đặt tên (không mặc định)
  • Xoá TTL
  • Dữ liệu PITR
  • Dữ liệu sao lưu
  • Khôi phục thao tác

Để biết thêm thông tin về cách tính phí đối với những tính năng này, hãy xem Giá bộ nhớ.

Giới hạn chuẩn

Bảng sau đây trình bày các giới hạn áp dụng cho Cloud Firestore. Đây là những giới hạn cố định trừ phi có ghi chú khác.

Cơ sở dữ liệu

Giới hạn Thông tin chi tiết
Số lượng cơ sở dữ liệu tối đa cho mỗi dự án

100

Bạn có thể liên hệ với nhóm hỗ trợ để yêu cầu tăng hạn mức này.

Bộ sưu tập, tài liệu và trường

Giới hạn Thông tin chi tiết
Các hạn chế đối với mã nhận dạng bộ sưu tập
  • Phải có các ký tự UTF-8 hợp lệ
  • Không được dài hơn 1.500 byte
  • Không được chứa dấu gạch chéo lên (/)
  • Không được chỉ chứa một dấu chấm (.) hoặc hai lần (..)
  • Không thể khớp với biểu thức chính quy __.*__
Chiều sâu tối đa của các tập hợp con 100
Quy tắc ràng buộc đối với mã nhận dạng tài liệu
  • Phải có các ký tự UTF-8 hợp lệ
  • Không được dài hơn 1.500 byte
  • Không được chứa dấu gạch chéo lên (/)
  • Không được chỉ chứa một dấu chấm (.) hoặc hai lần (..)
  • Không thể khớp với biểu thức chính quy __.*__
  • Nếu bạn nhập các thực thể Datastore vào cơ sở dữ liệu Firestore, mã nhận dạng thực thể dạng số được hiển thị dưới dạng __id[0-9]+__
Kích thước tối đa cho tên tài liệu 6 KiB
Kích thước tối đa cho một tài liệu 1 MiB (1.048.576 byte)
Các hạn chế đối với tên trường Phải có các ký tự UTF-8 hợp lệ
Kích thước tối đa của tên trường 1.500 byte
Hạn chế đối với đường dẫn trường
  • Phải phân tách các tên trường bằng một dấu chấm (.)
  • Có thể được truyền dưới dạng chuỗi phân đoạn được phân tách bằng dấu chấm (.), trong đó mỗi phân đoạn là một tên trường đơn giản hoặc tên trường có dấu ngoặc kép (được định nghĩa bên dưới).
Tên trường đơn giản là tên trường đáp ứng tất cả các yêu cầu sau:
  • Chỉ chứa các ký tự a-z, A-Z, 0-9 và dấu gạch dưới (_)
  • Không bắt đầu bằng 0-9
Tên trường có dấu ngoặc kép bắt đầu và kết thúc bằng ký tự dấu phẩy ngược (`). Ví dụ: foo.`x&y` đề cập đến trường x&y lồng trong trường foo. Để tạo tên trường bằng ký tự dấu phẩy ngược, hãy thoát ký tự dấu phẩy ngược bằng ký tự dấu gạch chéo ngược (\). Để thuận tiện, bạn có thể tránh các tên trường có dấu ngoặc kép bằng cách chuyển đường dẫn của trường dưới dạng đối tượng FieldPath (ví dụ: xem JavaScript TrườngPath).
Kích thước tối đa của đường dẫn trường 1.500 byte
Kích thước tối đa của giá trị trường 1 MiB - 89 byte (1.048.487 byte)
Độ sâu trường tối đa trong một bản đồ hoặc mảng

20

Các trường bản đồ và mảng giúp tăng thêm một mức cho chiều sâu tổng thể của đối tượng. Ví dụ: đối tượng sau có tổng độ sâu là 3 cấp:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Hoạt động ghi và giao dịch

Ngoài những giới hạn này, bạn cũng sẽ thấy các phương pháp hay nhất để thiết kế để mở rộng quy mô.

Giới hạn Thông tin chi tiết
Kích thước yêu cầu API tối đa 10 MiB
Giới hạn thời gian cho một giao dịch 270 giây, với thời gian hết hạn là 60 giây ở trạng thái rảnh

Chỉ số

Các giới hạn sau đây áp dụng cho chỉ mục một trườngchỉ mục kết hợp:

Giới hạn Thông tin chi tiết
Số lượng chỉ mục tổng hợp tối đa cho một cơ sở dữ liệu
Số lượng cấu hình một trường tối đa cho một cơ sở dữ liệu

Cấu hình một cấp trường có thể chứa nhiều cấu hình cho cùng một trường. Ví dụ: chính sách miễn lập chỉ mục một trường và chính sách TTL trên cùng một trường được tính là một cấu hình trường vào giới hạn.

Số mục nhập chỉ mục tối đa cho mỗi tài liệu

40.000

Số mục nhập chỉ mục là tổng của các mục sau của một tài liệu:

  • Số mục nhập chỉ mục một trường
  • Số lượng mục nhập chỉ mục tổng hợp

Để xem cách Cloud Firestore biến một tài liệu và một bộ chỉ mục vào các mục nhập chỉ mục, xem ví dụ về số lượng mục nhập trong chỉ mục này.

Số lượng trường tối đa trong một chỉ mục tổng hợp 100
Kích thước tối đa của một mục nhập chỉ mục

7,5 KiB

Để xem cách Cloud Firestore tính toán kích thước của mục nhập chỉ mục, hãy xem kích thước mục nhập chỉ mục.

Tổng kích thước tối đa của các mục trong chỉ mục trong một tài liệu

8 MiB

Tổng kích thước là tổng của các kích thước sau cho một tài liệu:

  • Tổng kích thước của các mục trong chỉ mục trong một trường của tài liệu
  • Tổng kích thước của các mục trong chỉ mục tổng hợp của một tài liệu
  • Kích thước tối đa của giá trị trường được lập chỉ mục

    1500 byte

    Các giá trị của trường vượt quá 1500 byte sẽ bị cắt bớt. Cụm từ tìm kiếm liên quan các giá trị trường bị cắt bớt có thể trả về kết quả không nhất quán.

    Thời gian tồn tại (TTL)

    Giới hạn Thông tin chi tiết
    Số lượng cấu hình một trường tối đa cho một cơ sở dữ liệu

    Cấu hình một cấp trường có thể chứa nhiều cấu hình cho cùng một trường. Ví dụ: chính sách miễn lập chỉ mục một trường và chính sách TTL trên cùng một trường được tính là một cấu hình trường vào giới hạn.

    Xuất khẩu/Nhập khẩu

    Các giới hạn sau áp dụng cho thao tác nhập và xuất được quản lý:

    Giới hạn Thông tin chi tiết
    Tổng số yêu cầu xuất và yêu cầu nhập tối đa cho một dự án mỗi phút 20
    Số lượt xuất và nhập đồng thời tối đa 50
    Số bộ lọc mã bộ sưu tập tối đa cho các yêu cầu xuất và nhập 100

    Quy tắc bảo mật

    Giới hạn Thông tin chi tiết
    Số lệnh gọi tối đa là exists(), get()getAfter() trong mỗi yêu cầu
    • 10 đối với yêu cầu một tài liệu và yêu cầu truy vấn.
    • 20 để đọc nhiều tài liệu, giao dịch và ghi hàng loạt. Giới hạn 10 trước đó cũng áp dụng cho mỗi hoạt động.

      Ví dụ: Giả sử bạn tạo một yêu cầu ghi theo lô bằng 3 thao tác ghi và quy tắc bảo mật của bạn dùng 2 tài liệu truy cập lệnh gọi để xác thực từng lần ghi. Trong trường hợp này, mỗi lượt ghi sử dụng 2 trong số 10 lệnh gọi truy cập và yêu cầu ghi theo lô sử dụng 6 20 cuộc gọi truy cập.

    Nếu vượt quá một trong hai giới hạn này, ứng dụng sẽ gặp lỗi bị từ chối cấp quyền.

    Một số lệnh gọi truy cập tài liệu có thể được lưu vào bộ nhớ đệm, và các lệnh gọi được lưu vào bộ nhớ đệm không được tính vào giới hạn này.

    Độ sâu câu lệnh match lồng nhau tối đa 10
    Độ dài đường dẫn tối đa trong các phân đoạn đường dẫn được cho phép trong một tập hợp các đoạn đường dẫn lồng nhau Câu lệnh match 100
    Số biến thể chụp đường dẫn tối đa được phép trong một tập hợp câu lệnh match lồng nhau 20
    Độ sâu lệnh gọi hàm tối đa 20
    Số lượng đối số tối đa của hàm 7
    Số liên kết biến tối đa let trên mỗi hàm 10
    Số lệnh gọi hàm đệ quy hoặc theo chu kỳ tối đa 0 (không được phép)
    Số biểu thức tối đa được đánh giá trong mỗi yêu cầu 1.000
    Kích thước tối đa của bộ quy tắc Quy tắc phải tuân theo hai giới hạn kích thước:
    • giới hạn 256 KB cho kích thước của nguồn văn bản bộ quy tắc được xuất bản từ bảng điều khiển của Firebase hoặc từ CLI bằng cách sử dụng firebase deploy.
    • giới hạn 250 KB cho kích thước của bộ quy tắc được biên dịch khi Firebase xử lý nguồn và đặt nguồn đó hoạt động trên phụ trợ.

    Quản lý chi tiêu

    Để giúp tránh các khoản phí ngoài dự kiến trên hoá đơn của bạn, hãy đặt ngân sách và cảnh báo hằng tháng.

    Đặt ngân sách hằng tháng

    Để theo dõi chi phí của bạn trên Cloud Firestore, hãy tạo ngân sách hằng tháng trong bảng điều khiển Google Cloud. Ngân sách sẽ không giới hạn mức sử dụng của bạn, nhưng bạn có thể đặt cảnh báo thành thông báo cho bạn khi bạn sắp đạt đến hoặc vượt quá chi phí dự kiến cho 1 tháng.

    Để đặt ngân sách, hãy chuyển đến phần Thanh toán trong bảng điều khiển Google Cloud rồi lập ngân sách cho Tài khoản thanh toán Cloud. Bạn có thể sử dụng chế độ cài đặt thông báo mặc định hoặc sửa đổi để gửi thông báo ở các tỷ lệ phần trăm khác nhau trong ngân sách hàng tháng của bạn.

    Tìm hiểu thêm về thiết lập ngân sách và thông báo về ngân sách.