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ợ.

Kiểu 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 Lưu ý
Mảng Theo giá trị phần tử

Một mảng không được chứa một giá trị mảng khác làm một trong các phần tử của mảng đó.

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

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ứ tiếp tục như vậy cho đến khi tìm thấy sự khác biệt. Nếu một mảng hết yếu tố cần so sánh nhưng cho tới thời điểm đó, thì yếu tố nào ngắn hơn mảng đượ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. Chiến lược phát hành đĩa đơn mảng [1, 2, 3] có các phần tử bằng 3 phần tử đầu tiên là các phần tử [1, 2, 3, 1] nhưng có thời lượng ngắn hơn.

Boolean false < true
Byte Thứ tự byte Lên đến 1.048.487 byte (1 MiB – 89 byte). Chỉ 1.500 byte đầu tiên là xem xét bởi các truy vấn.
Ngày và giờ Theo trình tự thời gian Khi được lưu trữ trong Cloud Firestore, chỉ có độ chính xác đến micrô giây; bất kỳ độ chính xác bổ sung sẽ được làm tròn xuống.
Số dấu phẩy động Số Độ chính xác kép 64 bit, IEEE 754.
Điểm địa lý Theo vĩ độ, rồi đến kinh độ Hiện tại, bạn không nên sử dụng loại dữ liệu này do những hạn chế đối với việc truy vấn. Thường thì bạn nên 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 truy vấn địa lý dựa trên khoảng cách đơn giản, hãy xem phần Truy vấn địa lý
Số nguyên Số 64 bit, đã ký
Bản đồ Theo khoá, sau đó theo giá trị

Đại diện cho một đối tượng được nhúng trong 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 chỉ mục thì tất cả các trường phụ cũng bị loại trừ khỏi chỉ mục.

Thứ tự khoá 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 phím và đã lưu dưới tên {a: "bar", b: "qux", c: "foo"}.

Các trường ánh xạ được sắp xếp theo khoá và so sánh theo cặp khoá-giá trị, trước tiên là so sánh các khoá rồi sau đó so sánh các giá trị. Nếu cặp khoá-giá trị đầu tiên bằng nhau, các cặp khoá-giá trị tiếp theo sẽ được so sánh, v.v. Nếu hai bản đồ có tất cả các cặp khoá-giá trị giống nhau, thì chiều dài bản đồ sẽ được xem xét. Để Ví dụ: các bản đồ sau 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 phải số) Không có
Null Không có
Tham khảo Theo các phần tử đường dẫn (bộ sưu tập, mã tài liệu, bộ sưu tập, mã 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ã hoá UTF-8 Lên đến 1.048.487 byte (1 MiB – 89 byte). Chỉ 1.500 byte đầu tiên của Việc biểu diễn bằng UTF-8 được xem xét theo các truy vấn.
Vectơ Theo phương diện, sau đó theo từng giá trị phần tử Phương diện nhúng được hỗ trợ tối đa là 2048. Để lưu trữ vectơ bằng kích thước lớn hơn, hãy sử dụng giảm số lượng kích thước.

Thứ tự loại giá trị

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

  1. Giá trị rỗng
  2. Giá trị boolean
  3. Giá trị NaN
  4. 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 về Cloud Firestore
  9. Giá trị điểm địa lý
  10. Giá trị mảng
  11. Nhúng vectơ
  12. Giá trị bản đồ