Sử dụng và giới hạn

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

Giám sát việc sử dụng của bạn

Để theo dõi việc sử dụng Cloud Firestore của bạn, hãy mở tab Sử dụng Cloud Firestore 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.

Cách sử dụng chi tiết trong bảng điều khiển Google Cloud

Khi tạo dự án Firebase, bạn cũng đang tạo dự án Google Cloud. Các trang Định mức API của Cloud FirestoreĐịnh mức App Engine trong bảng điều khiển Google Cloud theo dõi thông tin hạn ngạch và mức sử dụng của Cloud Firestore.

Hạn ngạch miễn phí

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

Hạn ngạch đượ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 nhận hạn ngạch miễn phí.

Bậc miễn phí Hạn ngạch
Dữ liệu được lưu trữ 1 GiB
Đọc tài liệu 50.000 mỗi ngày
Viết tài liệu 20.000 mỗi ngày
Xóa tài liệu 20.000 mỗi ngày
Truyền dữ liệu đi 10 GiB mỗi tháng

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

  • Sử dụng cơ sở dữ liệu có tên (không mặc định)
  • TTL xóa
  • Dữ liệu PITR
  • Sao lưu dữ liệu
  • Khôi phục hoạt động

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

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

Các bảng sau đây hiển thị các giới hạn áp dụng cho Cloud Firestore. Đây là những giới hạn cứng trừ khi có ghi chú khác.

Cơ sở dữ liệu

Giới hạn 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.

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

Giới hạn Chi tiết
Các ràng buộc về ID bộ sưu tập
  • Phải là ký tự UTF-8 hợp lệ
  • Không được dài hơn 1.500 byte
  • Không thể chứa dấu gạch chéo lên ( / )
  • Không thể chỉ bao gồm một dấu chấm ( . ) hoặc hai dấu chấm ( .. )
  • Không thể 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 về ID tài liệu
  • Phải là ký tự UTF-8 hợp lệ
  • Không được dài hơn 1.500 byte
  • Không thể chứa dấu gạch chéo lên ( / )
  • Không thể chỉ bao gồm một dấu chấm ( . ) hoặc hai dấu chấm ( .. )
  • 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, ID thực thể 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 về tên trường Phải là ký tự UTF-8 hợp lệ
Kích thước tối đa của tên trường 1.500 byte
Những hạn chế về đườ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 chuyển dưới dạng chuỗi phân cách bằng dấu chấm ( . ) trong đó mỗi phân đoạn là tên trường đơn giản hoặc 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 trường có tất cả những điều sau đây đúng:
  • Chỉ chứa các ký tự az , AZ , 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ự backtick ( ` ). 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 gạch chéo ngược, hãy thoát ký tự dấu gạch chéo 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 trích dẫn bằng cách chuyển đường dẫn trường dưới dạng đối tượng FieldPath ( ví dụ: xem JavaScript FieldPath ).
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 bản đồ hoặc mảng 20

Viết và giao dịch

Ngoài những 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ế theo quy mô .

Giới hạn 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 60 giây khi không hoạt động

Chỉ mục

Các giới hạn sau đây áp dụng cho chỉ mục trường đơnchỉ mục tổng hợp :

Giới hạn Chi tiết
Số lượng chỉ mục tổng hợp tối đa cho cơ sở dữ liệu
Số lượng cấu hình một trường tối đa cho 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ụ: miễn trừ lập chỉ mục một trường và chính sách TTL trên cùng một trường sẽ được tính là một cấu hình trường hướng tới giới hạn.

Số lượng mục 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 cho một tài liệu:

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

Để xem cách Cloud Firestore biến tài liệu và tập hợp chỉ mục thành 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ố 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 tài liệu

8 MiB

Tổng kích thước là tổng của các giá trị sau 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 tài liệu
  • Tổng kích thước của các mục chỉ mục tổng hợp của 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

    Giá trị trường trên 1500 byte sẽ bị cắt bớt. Các truy vấn liên quan đến giá trị trường bị cắt ngắn 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 Chi tiết
    Số lượng cấu hình một trường tối đa cho 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ụ: miễn trừ lập chỉ mục một trường và chính sách TTL trên cùng một trường sẽ được tính là một cấu hình trường hướng tới giới hạn.

    Xuất nhập khẩu

    Các giới hạn sau áp dụng cho hoạt động xuất nhập khẩu được quản lý :

    Giới hạn 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 xuất nhập khẩu tối đa đồng thời 50
    Số lượng bộ lọc ID 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 Chi tiết
    Số lượng lệnh exists() , get()getAfter() tối đa 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 để đọc, giao dịch và ghi nhiều tài liệu. Giới hạn trước đó là 10 cũng được áp dụng cho mỗi thao tác.

      Ví dụ: hãy tưởng tượng bạn tạo một yêu cầu ghi theo lô với 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 lần ghi. Trong trường hợp này, mỗi lần ghi sử dụng 2 trong số 10 lệnh gọi truy cập và yêu cầu ghi theo đợt sử dụng 6 trong số 20 lệnh gọi truy cập.

    Vượt quá một trong hai giới hạn sẽ dẫn đến lỗi từ chối cấp phép.

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

    Độ sâu match lồng nhau tối đa 10
    Độ dài đường dẫn tối đa, tính theo phân đoạn đường dẫn, được phép trong một tập hợp các câu lệnh match lồng nhau 100
    Số lượng biến chụp đường dẫn tối đa được phép trong một tập hợp các câu lệnh match lồng nhau 20
    Độ sâu cuộc gọi chức năng tối đa 20
    Số lượng đối số tối đa của hàm 7
    Số lượng liên kết biến let tối đa cho mỗi hàm 10
    Số lần gọi hàm đệ quy hoặc tuần hoàn tối đa 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 bộ quy tắc Bộ quy tắc phải tuân theo hai giới hạn kích thước:
    • giới hạn 256 KB đối với 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 Firebase hoặc từ CLI bằng cách sử dụng firebase deploy .
    • giới hạn 250 KB đối với kích thước của bộ quy tắc được biên dịch xảy ra khi Firebase xử lý nguồn và kích hoạt nó ở phía sau.

    Quản lý chi tiêu

    Để giúp tránh các khoản phí bất ngờ trên hóa đơ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í Cloud Firestore của bạn, 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 ​​trong tháng.

    Để đặt ngân sách, hãy chuyển tới phần Thanh toán trong bảng điều khiển Google Cloud và tạo ngân sách cho tài khoản Thanh toán trên đám mây của bạn. Bạn có thể sử dụng 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 trong ngân sách hàng tháng của mình.

    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 .