Catch up on highlights from Firebase at Google I/O 2023. Learn more

Các loại dữ liệu được hỗ trợ

Trang này mô tả các loại dữ liệu mà Cloud Firestore hỗ trợ.

Loại dữ liệu

Bảng sau đây liệt kê các loại dữ liệu được Cloud Firestore hỗ trợ. Nó cũng mô tả thứ tự sắp xếp được sử dụng khi so sánh các giá trị cùng loại:

Loại dữ liệu Thứ tự sắp xếp ghi chú
Mảng Theo giá trị phần tử

Một mảng không thể chứa một giá trị mảng khác như một trong các phần tử của nó.

Trong một mảng, các phần tử duy trì vị trí được gán cho chúng. Khi sắp xếp hai hoặc nhiều mảng, các mảng được sắp xếp dựa trên các giá trị phần tử của chúng.

Khi so sánh hai mảng, các phần tử đầu tiên của mỗi mảng được so sánh. Nếu các phần tử đầu tiên bằng nhau, thì các phần tử thứ hai được so sánh và cứ thế cho đến khi tìm thấy sự khác biệt. Nếu một mảng hết các phần tử để so sánh nhưng bằng nhau cho đến thời điểm đó, thì mảng ngắn hơn được sắp xếp trước mảng dài hơn.

Ví dụ: [1, 2, 3] < [1, 2, 3, 1] < [2] . Mảng [2] có giá trị phần tử đầu tiên lớn nhất. Mảng [1, 2, 3] có các phần tử bằng 3 phần tử đầu của [1, 2, 3, 1] nhưng ngắn hơn về độ dài.

Boolean true < false
byte thứ tự byte Lên đến 1.048.487 byte (1 MiB - 89 byte). Chỉ 1.500 byte đầu tiên được xem xét bởi các truy vấn.
Ngày và giờ Theo niên đại Khi được lưu trữ trong Cloud Firestore, chỉ chính xác đến từng phần triệu giây; bất kỳ độ chính xác bổ sung nào được làm tròn xuống.
Số điểm nổi số Độ chính xác kép 64-bit, IEEE 754.
điểm địa lý Theo vĩ độ, sau đó là kinh độ Tại thời điểm này, chúng tôi khuyên bạn không nên sử dụng loại dữ liệu này do giới hạn truy vấn. Nói chung tốt hơn là lưu trữ vĩ độ và kinh độ dưới dạng các trường số riêng biệt. Nếu ứng dụng của bạn cần các truy vấn địa lý dựa trên khoảng cách đơn giản, hãy xem Truy vấn địa lý
số nguyên số 64-bit, đã ký
Bản đồ Theo khóa, sau đó theo giá trị

Đại diện cho một đối tượng được nhúng trong một tài liệu. Khi được lập chỉ mục, bạn có thể truy vấn trên các trường con. Nếu bạn loại trừ giá trị này khỏi việc lập chỉ mục, thì tất cả các trường con cũng bị loại trừ khỏi việc lập chỉ mục.

Thứ tự khóa luôn được sắp xếp. Ví dụ: nếu bạn viết {c: "foo", a: "bar", b: "qux"} bản đồ được sắp xếp theo khóa và được lưu dưới dạng {a: "bar", b: "qux", c: "foo"} .

Các trường bản đồ được sắp xếp theo khóa và được so sánh theo các cặp khóa-giá trị, đầu tiên so sánh các khóa và sau đó là các giá trị. Nếu các cặp khóa-giá trị đầu tiên bằng nhau, các cặp khóa-giá trị tiếp theo sẽ được so sánh, v.v. Nếu hai bản đồ bắt đầu với các cặp khóa-giá trị giống nhau, thì độ dài bản đồ sẽ được xem xét. Ví dụ: các bản đồ sau được sắp xếp theo thứ tự tăng dần:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

NaN Không có
Vô giá trị Không có
Thẩm quyền giải quyết Theo các phần tử đường dẫn (bộ sưu tập, ID tài liệu, bộ sưu tập, ID tài liệu ...) Ví dụ: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
chuỗi văn bản Thứ tự byte được mã hóa UTF-8 Lên đến 1.048.487 byte (1 MiB - 89 byte). Chỉ 1.500 byte đầu tiên của biểu diễn UTF-8 được xem xét bởi các truy vấn.

Thứ tự loại giá trị

Khi một truy vấn liên quan đến một trường có các giá trị thuộc nhiều loại hỗn hợp, Cloud Firestore sẽ sử dụng thứ tự xác định dựa trên các biểu diễn bên trong. Danh sách sau đây cho thấy thứ tự:

  1. giá trị null
  2. giá trị Boolean
  3. giá trị NaN
  4. Các giá trị số nguyên và dấu phẩy động, được sắp xếp theo thứ tự số
  5. Giá trị ngày
  6. Giá trị chuỗi văn bản
  7. Giá trị byte
  8. Tài liệu tham khảo Cloud Firestore
  9. Giá trị điểm địa lý
  10. Giá trị mảng
  11. Giá trị bản đồ