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

Hãy sử dụng hướng dẫn này để tìm hiểu về các giới hạn của Cloud Firestore, và xem Cloud Firestore Giá để biết thông tin giải thích đầy đủ và chi tiết về Cloud Firestore chi phí, bao gồm cả những điều cần lưu ý.

Theo dõi mức sử dụng

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

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 đang tạo một dự án Google Cloud. Các trang Cloud Firestore Hạn mức APIApp Engine Hạn mức trong bảng điều khiển Google Cloud theo dõi thông tin về hạn mức và mức sử dụng Cloud Firestore.

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 mà không tốn chi phí. Nếu cần thêm hạn mức, bạn phải bật tính năng thanh toán cho dự ánGoogle Cloud của bạn.

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

Bảng sau đây tóm tắt số lượng hạn mức miễn phí:

Bậc miễn phí Hạn mức
Dữ liệu đã lưu 1 GiB
Số lần đọc tài liệu 50.000 mỗi ngày
Số lần ghi tài liệu 20.000 mỗi ngày
Số lần xoá tài liệu 20.000 mỗi ngày
Truyền dữ liệu đi 10 GiB mỗi tháng

Các thao tác và tính năng sau đây không bao gồm mứ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 này:

  • Xoá TTL
  • Dữ liệu PITR
  • Dữ liệu sao lưu
  • Thao tác khôi phục
  • Thao tác sao chép

Để biết thêm thông tin về cách tính phí các tính năng này, hãy xem trang Giá lưu trữ.

Giới hạn tiêu chuẩn

Các bảng sau đây cho thấy các giới hạn áp dụng cho Cloud Firestore. Đây là các giới hạn cứng, 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 bộ phận hỗ trợ để yêu cầu tăng giới hạn này.

Số lượng cơ sở dữ liệu khoá mã hoá do khách hàng quản lý (CMEK) tối đa cho mỗi dự án

0

Theo mặc định, hạn mức là 0 vì tính năng này nằm sau danh sách cho phép. Bạn có thể yêu cầu tăng hạn mức bằng cách điền vào biểu mẫu yêu cầu quyền truy cập CMEK.

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

Giới hạn Thông tin chi tiết
Các ràng buộc đối với mã bộ sưu tập
  • Phải là các ký tự UTF-8 hợp lệ
  • Không được dài quá 1.500 byte
  • Không được chứa dấu gạch chéo (/)
  • Không được chỉ bao gồm một dấu chấm (.) hoặc hai dấu chấm (..)
  • Không được khớp với biểu thức chính quy __.*__
Độ sâu tối đa của bộ sưu tập con 100
Các ràng buộc đối với mã tài liệu
  • Phải là các ký tự UTF-8 hợp lệ
  • Không được dài quá 1.500 byte
  • Không được chứa dấu gạch chéo (/)
  • Không được chỉ bao gồm một dấu chấm (.) hoặc hai dấu chấm (..)
  • Không được 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, thì mã thực thể dạng số 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 ràng buộc đối với tên trường
  • Phải là các ký tự UTF-8 hợp lệ
  • Không được khớp với biểu thức chính quy __.*__
Kích thước tối đa của tên trường 1.500 byte
Các ràng buộc đối với đường dẫn trường
  • Phải phân tách 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 tách bằng dấu chấm (.) của các phân đoạn, trong đó mỗi phân đoạn là một tên trường đơn giản hoặc một tên trường được trích dẫn (được xác định bên dưới).
Tên trường đơn giản là tên mà tất cả các điều kiện sau đều được đáp ứng:
  • 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 trích dẫn bắt đầu và kết thúc bằng ký tự dấu huyền (`). Ví dụ: foo.`x&y` đề cập đến trường x&y được lồng trong trường foo. Để tạo tên trường bằng ký tự dấu huyền, hãy thoát ký tự dấu huyền bằng ký tự dấu gạch chéo ngược (\). Để thuận tiện, bạn có thể tránh tên trường được trích dẫn bằng cách truyền đường dẫn trường dưới dạng đối tượng FieldPath (ví dụ: xem FieldPath JavaScript).
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 tối đa của các trường trong một bản đồ hoặc mảng

20

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


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

Thao tác ghi và giao dịch

Ngoài các giới hạn này, bạn cũng nên xem các phương pháp hay nhất để thiết kế cho quy mô.

Giới hạn Thông tin chi tiết
Kích thước tối đa của yêu cầu API 10 MiB
Thời gian giới hạn cho một giao dịch 270 giây, với thời gian hết hạn không hoạt động là 60 giây
Số lượng tối đa các phép biến đổi trường có thể được thực hiện trên một tài liệu trong thao tác Commit hoặc trong một giao dịch 500

Chỉ số

Các giới hạn sau đây áp dụng cho chỉ mục một trườngchỉ mục tổng 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

Một cấu hình cấp trường có thể chứa nhiều cấu hình cho cùng một trường. Ví dụ: một trường được miễn lập chỉ mục và một 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 theo giới hạn.

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

40.000

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

  • Số lượng 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 chuyển một tài liệu và một tập hợp chỉ mục thành các mục nhập chỉ mục, hãy xem ví dụ về số lượng mục nhập 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 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 nhập chỉ mục của một tài liệu

8 MiB

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

  • Tổng kích thước của các mục nhập chỉ mục một trường của một tài liệu
  • Tổng kích thước của các mục nhập 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

    1.500 byte

    Các giá trị trường trên 1.500 byte sẽ bị cắt bớt. Các truy vấn liên quan đến 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

    Một cấu hình cấp trường có thể chứa nhiều cấu hình cho cùng một trường. Ví dụ: một trường được miễn lập chỉ mục và một 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 theo giới hạn.

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

    Các giới hạn sau đây áp dụng cho các 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à nhập tối đa cho một dự án được phép mỗi phút 20
    Số lượng tối đa các thao tác xuất và nhập đồng thời 50
    Số lượng tối đa bộ lọc mã bộ sưu tập 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ượng tối đa các lệnh gọi exists(), get()getAfter() cho mỗi yêu cầu
    • 10 cho các yêu cầu một tài liệu và yêu cầu truy vấn.
    • 20 cho các thao tác đọc nhiều tài liệu, giao dịch, và thao tác ghi theo lô. Giới hạn trước đó là 10 cũng áp dụng cho mỗi thao tác.

      Ví dụ: giả sử bạn tạo một yêu cầu ghi theo lô có 3 thao tác ghi và quy tắc bảo mật của bạn sử dụng 2 lệnh gọi truy cập tài liệu để xác thực mỗi thao tác ghi. Trong trường hợp này, mỗi thao tác 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 trong số 20 lệnh gọi truy cập.

    Việc vượt quá một trong hai giới hạn sẽ dẫn đến lỗi bị từ chối 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.

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

    Quản lý chi tiêu

    Để tránh các khoản phí không mong muốn trên hoá đơ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í 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ông báo cho bạn khi bạn sắp đạt đến hoặc vượt quá chi phí dự kiến cho 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 tạo ngân sách cho tài khoản Cloud Billing. Bạn có thể sử dụng chế độ cài đặt cảnh báo mặc định hoặc sửa đổi cảnh báo để gửi thông báo ở các tỷ lệ phần trăm khác nhau của ngân sách hằng tháng.

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