Obsługiwane typy danych

Na tej stronie opisano typy danych obsługiwane przez Cloud Firestore.

Typy danych

W poniższej tabeli wymieniono typy danych obsługiwane przez Cloud Firestore. Opisuje także porządek sortowania używany przy porównywaniu wartości tego samego typu:

Typ danych Kolejność sortowania Notatki
Szyk Według wartości elementów

Tablica nie może zawierać innej wartości tablicy jako jednego ze swoich elementów.

Elementy w tablicy zachowują przypisaną im pozycję. Podczas sortowania dwóch lub większej liczby tablic porządkowanie tablic odbywa się na podstawie wartości ich elementów.

Porównując dwie tablice, porównywane są pierwsze elementy każdej tablicy. Jeżeli pierwsze elementy są równe, wówczas porównywane są drugie elementy i tak dalej, aż do znalezienia różnicy. Jeśli w tablicy zabraknie elementów do porównania, ale do tego momentu będzie ona równa, wówczas krótsza tablica zostanie uporządkowana przed dłuższą tablicą.

Na przykład [1, 2, 3] < [1, 2, 3, 1] < [2] . Tablica [2] ma największą wartość pierwszego elementu. Tablica [1, 2, 3] zawiera elementy równe pierwszym trzem elementom [1, 2, 3, 1] ale jest krótsza.

Wartość logiczna false < true
Bajty Kolejność bajtów Do 1 048 487 bajtów (1 MiB - 89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów.
Data i godzina Chronologiczny Gdy są przechowywane w Cloud Firestore, z dokładnością tylko do mikrosekund; każda dodatkowa dokładność jest zaokrąglana w dół.
Liczba zmiennoprzecinkowa Numeryczny 64-bitowa podwójna precyzja, IEEE 754 .
Punkt geograficzny Według szerokości geograficznej, a następnie długości geograficznej Obecnie nie zalecamy używania tego typu danych ze względu na ograniczenia w zakresie zapytań. Ogólnie rzecz biorąc, lepiej jest przechowywać szerokość i długość geograficzną jako oddzielne pola numeryczne. Jeśli Twoja aplikacja wymaga prostych zapytań geograficznych opartych na odległości, zobacz Zapytania geograficzne
Liczba całkowita Numeryczny 64-bitowy, podpisany
Mapa Według kluczy, a następnie według wartości

Reprezentuje obiekt osadzony w dokumencie. Po indeksowaniu możesz wysyłać zapytania do podpól. Jeśli wykluczysz tę wartość z indeksowania, wówczas wszystkie podpola również zostaną wyłączone z indeksowania.

Kolejność kluczy jest zawsze sortowana. Na przykład, jeśli napiszesz {c: "foo", a: "bar", b: "qux"} mapa zostanie posortowana według klucza i zapisana jako {a: "bar", b: "qux", c: "foo"} .

Pola mapy są sortowane według klucza i porównywane według par klucz-wartość, najpierw porównując klucze, a następnie wartości. Jeśli pierwsze pary klucz-wartość są równe, porównywane są kolejne pary klucz-wartość i tak dalej. Jeśli dwie mapy zaczynają się od tych samych par klucz-wartość, uwzględniana jest długość mapy. Na przykład następujące mapy są uporządkowane rosnąco:

{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 Nic
Zero Nic
Odniesienie Według elementów ścieżki (kolekcja, identyfikator dokumentu, kolekcja, identyfikator dokumentu...) Na przykład projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Ciąg tekstowy Kolejność bajtów zakodowana w UTF-8 Do 1 048 487 bajtów (1 MiB - 89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów reprezentacji UTF-8.

Porządkowanie typu wartości

Gdy zapytanie obejmuje pole z wartościami typów mieszanych, Cloud Firestore stosuje porządkowanie deterministyczne w oparciu o reprezentacje wewnętrzne. Poniższa lista przedstawia kolejność:

  1. Wartości zerowe
  2. Wartości logiczne
  3. Wartości NaN
  4. Wartości całkowite i zmiennoprzecinkowe, posortowane w kolejności numerycznej
  5. Wartości daty
  6. Wartości ciągu tekstowego
  7. Wartości bajtów
  8. Referencje Cloud Firestore
  9. Wartości punktów geograficznych
  10. Wartości tablicowe
  11. Wartości mapy