Obsługiwane typy danych

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

Typy danych

Tabela poniżej zawiera listę typów danych obsługiwanych przez Cloud Firestore. Zawiera ona też opis kolejności sortowania używanej podczas porównywania wartości tego samego typu:

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

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

Elementy w tablicy zachowują przypisaną pozycję. Podczas sortowania co najmniej 2 tablic są one uporządkowane według wartości elementów.

Porównując 2 tablice, porównywane są ich pierwsze elementy. Jeśli pierwsze elementy są równe, porównywane są elementy drugie i tak dalej, aż zostanie znaleziona różnica. Jeśli tablica wyczerpie elementy do porównania, ale do tego momentu jest równa, krótsza tablica jest 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 3 pierwszym elementom tablicy [1, 2, 3, 1], ale jest krótsza.

Wartość logiczna false < true
Bajty kolejność bajtów, Maksymalnie 1 048 487 bajtów (1 MiB – 89 bajtów). Zapytania uwzględniają tylko pierwszych 1500 bajtów.
Data i godzina Chronologicznie Gdy jest przechowywany w formacie Cloud Firestore, ma dokładność do mikrosekund; większa dokładność jest zaokrąglana w dół.
liczba zmiennoprzecinkowa, Wartość liczbowa 64-bitowa podwójna precyzja, IEEE 754.
Punkt geograficzny Według szerokości geograficznej, a potem długości Ze względu na ograniczenia dotyczące zapytań nie zalecamy obecnie używania tego typu danych. Zwykle lepiej jest przechowywać szerokość i długość geograficzną jako osobne pola liczbowe. Jeśli Twoja aplikacja potrzebuje prostych zapytań geograficznych na podstawie odległości, zapoznaj się z artykułem Zapytania geograficzne.
Liczba całkowita Wartość liczbowa 64-bitowy, podpisany
Mapa według kluczy, a potem według wartości;

Reprezentuje obiekt osadzony w dokumencie. Po zindeksowaniu możesz wysyłać zapytania dotyczące pól podrzędnych. Jeśli wykluczysz tę wartość z indeksowania, wszystkie pola podrzędne również zostaną wykluczone z indeksowania.

Klucze są zawsze sortowane. Jeśli na przykład wpiszesz {c: "foo", a: "bar", b: "qux"}, mapa zostanie posortowana według klucza i zapisane jako {a: "bar", b: "qux", c: "foo"}.

Pola mapy są sortowane według klucza i porównywane za pomocą par klucz-wartość, najpierw po kluczach, a potem po wartościach. Jeśli pierwsze pary klucz-wartość są równe, porównywane są kolejne pary klucz-wartość itd. Jeśli 2 mapy mają te same pary klucz-wartość, bierze się pod uwagę długość mapy. Na przykład te mapy są posortowane w kolejności rosnącej:

{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 itd.) Na przykład: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Ciąg tekstowy kolejność bajtów kodowania UTF-8. Maksymalnie 1 048 487 bajtów (1 MiB – 89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów reprezentacji w formacie UTF-8.
Wektor według wymiaru, a potem według wartości poszczególnych elementów; Maksymalna obsługiwana liczba wymiarów wektorów to 2048. Aby przechowywać wektory o większych wymiarach, użyj redukcji wymiarów.

Uporządkowanie według typu wartości

Jeśli zapytanie dotyczy pola z wartościami o różnych typach, Cloud Firestore używa deterministycznego sortowania na podstawie wewnętrznych reprezentacji. Kolejność jest następująca:

  1. Wartości null
  2. wartości logiczne,
  3. wartości NaN,
  4. wartości całkowite i zmiennopozycyjne posortowane w kolejności rosnącej,
  5. wartości daty,
  6. Wartości ciągu tekstowego
  7. Wartości bajtów
  8. Cloud Firestore pliku referencyjnego
  9. Wartości punktów geograficznych
  10. wartości tablicy,
  11. Wektory dystrybucyjne
  12. Mapowanie wartości