了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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ż kolejność sortowania używaną podczas porównywania wartości tego samego typu:

Typ danych Kolejność sortowania Notatki
Szyk Według wartości elementu

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

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

Podczas porównywania dwóch tablic porównywane są pierwsze elementy każdej tablicy. Jeśli pierwsze elementy są równe, porównuje się drugie elementy i tak dalej, aż do znalezienia różnicy. Jeśli w tablicy zabraknie elementów do porównania, ale do tego momentu jest ona równa, wówczas krótsza tablica jest porzą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] ma elementy równe pierwszym trzem elementom tablicy [1, 2, 3, 1] ale jest krótsza.

logiczne 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 W przypadku przechowywania w Cloud Firestore, dokładność tylko do mikrosekund; każda dodatkowa dokładność jest zaokrąglana w dół.
Liczba zmiennoprzecinkowa Numeryczne 64-bitowa podwójna precyzja, IEEE 754.
Punkt geograficzny Według szerokości geograficznej, a następnie długości geograficznej W tej chwili nie zalecamy używania tego typu danych ze względu na ograniczenia zapytań. Zasadniczo lepiej jest przechowywać szerokość i długość geograficzną jako oddzielne pola liczbowe. Jeśli Twoja aplikacja wymaga prostych zapytań geograficznych opartych na odległości, zobacz Zapytania geograficzne
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 wysyłać 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 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ą w porządku rosnącym:

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

Kolejność typu wartości

Gdy zapytanie dotyczy pola z wartościami różnych typów, Cloud Firestore stosuje kolejność deterministyczną opartą na wewnętrznych reprezentacjach. Poniższa lista pokazuje kolejność:

  1. Wartości zerowe
  2. Wartości logiczne
  3. wartości NaN
  4. Wartości całkowite i zmiennoprzecinkowe, posortowane w porządku numerycznym
  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 tablicy
  11. Wartości mapy