Obsługiwane typy danych

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

Typy danych

W tabeli poniżej znajdziesz typy danych obsługiwane przez Cloud Firestore. it opisuje również kolejność sortowania stosowany przy porównywaniu wartości tego samego typu:

Typ danych Kolejność sortowania Uwagi
Tablica Według wartości elementów

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

Elementy w tablicy zachowują przypisaną do nich pozycję. Podczas sortowania co najmniej dwóch tablic tablice są uporządkowane według elementu .

Przy porównywaniu dwóch tablic pierwsze elementy każdej z nich są porównywane. Jeśli pierwsze elementy są równe, to drugie są porównywane i tak dalej, aż znajdziemy różnicę. Jeśli tablica się zabraknie do porównania, ale do tego momentu jest równa jest ułożona wcześniej niż dłuższa tablica.

Na przykład: [1, 2, 3] < [1, 2, 3, 1] < [2]. Tablica [2] ma najwyższą wartość pierwszego elementu. tablica [1, 2, 3] ma elementy równe pierwszym trzem elementów [1, 2, 3, 1], ale są krótsze.

Wartość logiczna false < true
Bajty Kolejność bajtów Maks. 1 048 487 bajtów (1 MiB–89 bajtów). Można użyć tylko pierwszych 1500 bajtów uwzględnianych w zapytaniach.
Data i godzina Chronologicznie w przypadku przechowywania w Cloud Firestore, z dokładnością do mikrosekund; wszystkie dodatkowa precyzja jest zaokrąglana w dół.
Liczba zmiennoprzecinkowa Wartość liczbowa Podwójna precyzja 64-bitowa, IEEE 754.
Punkt geograficzny Według szerokości, a następnie długości geograficznej W tej chwili nie zalecamy korzystania z tego typu danych ze względu na ograniczenia zapytań. Długość i szerokość geograficzna lepiej jest zapisywać jako osobne pola liczbowe. Jeśli Twoja aplikacja wymaga prostych zapytań geograficznych opartych na odległości, zapoznaj się z sekcją Zapytania geograficzne.
Liczba całkowita Wartość liczbowa 64-bitowy, podpisany
Mapa według kluczy, a potem według wartości

Reprezentuje obiekt umieszczony w dokumencie. Po zindeksowaniu można przesłać zapytanie w polach podrzędnych. Jeśli wykluczysz tę wartość z indeksowania, wszystkie pola podrzędne zostaną są wykluczone z indeksowania.

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

Pola mapowania są sortowane według klucza i porównywane według par klucz-wartość, najpierw porównując klucze, a potem wartości. Jeśli pierwsze pary klucz-wartość są równe, porównywane są kolejne pary klucz-wartość i tak dalej. Jeśli 2 mapy zawierają wszystkie takie same pary klucz-wartość, brana jest pod uwagę długość mapy. Dla: Na przykład te mapy są posortowane 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 Brak
Null Brak
Źródła wiedzy Według elementów ścieżki (kolekcja, identyfikator dokumentu, kolekcja, identyfikator dokumentu...) Przykład: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
Ciąg tekstowy Kolejność bajtów zakodowana w UTF-8 Maks. 1 048 487 bajtów (1 MiB–89 bajtów). Tylko pierwsze 1500 bajtów Reprezentacja UTF-8 jest uwzględniana w zapytaniach.
Wektor Według wymiaru, a następnie według poszczególnych wartości elementów Maksymalny obsługiwany wymiar wektora dystrybucyjnego to 2048. Do przechowywania wektorów: o większych wymiarach, należy użyć funkcji redukcja wymiarów.

Sortowanie typów wartości

Jeśli zapytanie obejmuje pole z wartościami różnych typów, Cloud Firestore stosuje deterministyczne sortowanie na podstawie wewnętrznego reprezentacji. Oto ich kolejność:

  1. Wartości null
  2. Wartości logiczne
  3. Wartości NaN
  4. Wartości całkowite i zmiennoprzecinkowe posortowane w kolejności liczbowej
  5. Wartości dat
  6. Wartości ciągu tekstowego
  7. Wartości w bajtach
  8. Dokumentacja Cloud Firestore
  9. Geograficzne wartości punktowe
  10. Wartości tablicy
  11. Wektory dystrybucyjne wektorów
  12. Mapuj wartości