Catch up on everything we announced at this year's Firebase Summit. Learn more

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 również porządek sortowania używany podczas porównywania wartości tego samego typu:

Typ danych Sortuj porządek Uwagi
Szyk Według wartości elementów

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

W tablicy elementy zachowują przypisaną im pozycję. Podczas sortowania dwóch lub więcej tablic, tablice są uporządkowane na podstawie ich wartości elementów.

Podczas porównywania dwóch tablic porównywane są pierwsze elementy każdej tablicy. Jeśli pierwsze elementy są równe, porównywane są drugie elementy i tak dalej, aż do znalezienia różnicy. Jeśli w tablicy zabraknie elementów do porównania, ale jest ona równa do tego momentu, wówczas krótsza tablica jest porządkowana przed tablicą dłuższą.

Na przykład, [1, 2, 3] < [1, 2, 3, 1] < [2] . Tablica [2] ma największą wartość pierwszego elementu. Tablica [1, 2, 3] jest równomiernie elementy do pierwszych trzech elementach [1, 2, 3, 1] ale jest krótszy.

Boole'a 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 Przechowywane w Cloud Firestore z dokładnością do mikrosekund; każda dodatkowa precyzja jest zaokrąglana w dół.
Liczba zmiennoprzecinkowa Numeryczne 64-bitowa podwójna precyzja, IEEE 754.
Punkt geograficzny Według szerokości, a następnie długości geograficznej W tej chwili nie zalecamy używania tego typu danych ze względu na ograniczenia zapytań. Ogólnie lepiej jest przechowywać szerokość i długość geograficzną jako oddzielne pola liczbowe. Jeśli aplikacja wymaga prostych geoqueries odległości opartej zobaczyć zapytań Geo
Liczba całkowita Numeryczne 64-bitowy, podpisany
Mapa Według kluczy, a następnie według wartości

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

Kolejność kluczy jest zawsze posortowana. Na przykład, jeśli piszesz {c: "foo", a: "bar", b: "qux"} mapa jest klasyfikowane według klucza i zapisać 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ą następne pary klucz-wartość itd. Jeśli dwie mapy zaczynają się od tych samych par klucz-wartość, brana jest pod uwagę długość mapy. Na przykład poniższe 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"}

Zero Nic
Referencja 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 Zakodowana kolejność bajtó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.

Zamawianie typu wartości

Gdy zapytanie obejmuje pole z wartościami różnych typów, Cloud Firestore używa deterministycznej kolejności opartej na wewnętrznych reprezentacjach. Poniższa lista przedstawia kolejność:

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