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

Поддерживаемые типы данных

На этой странице описаны типы данных, которые поддерживает Cloud Firestore.

Типы данных

В следующей таблице перечислены типы данных, поддерживаемые Cloud Firestore. Он также описывает порядок сортировки, используемый при сравнении значений одного типа:

Тип данных Порядок сортировки Примечания
Множество По значениям элементов

Массив не может содержать другое значение массива в качестве одного из своих элементов.

Внутри массива элементы сохраняют назначенную им позицию. При сортировке двух или более массивов массивы упорядочиваются на основе значений их элементов.

При сравнении двух массивов сравниваются первые элементы каждого массива. Если первые элементы равны, то сравниваются вторые элементы и так далее, пока не будет обнаружено различие. Если в массиве заканчиваются элементы для сравнения, но он равен до этого момента, то более короткий массив упорядочивается перед более длинным.

Так , например, [1, 2, 3] < [1, 2, 3, 1] < [2] . Массив [2] имеет наибольшее значение первого элемента. Массив [1, 2, 3] имеет элементы , равные первых трех элементов [1, 2, 3, 1] , но короче в длину.

Логический false < true -
Байты Порядок байтов До 1 048 487 байт (1 МиБ - 89 байт). Запросы рассматривают только первые 1500 байт.
Дата и время Хронологический При хранении в Cloud Firestore с точностью до микросекунд; любая дополнительная точность округляется в меньшую сторону.
Число с плавающей запятой Числовой 64-битная двойная точность, IEEE 754.
Географическая точка По широте, потом по долготе В настоящее время мы не рекомендуем использовать этот тип данных из-за ограничений запросов. Как правило, лучше хранить широту и долготу как отдельные числовые поля. Если ваше приложение нуждается в простых расстояния на основе geoqueries см Geo запросов
Целое число Числовой 64-битный, подписанный
карта По ключам, потом по стоимости

Представляет объект, внедренный в документ. При индексировании вы можете запрашивать подполя. Если вы исключите это значение из индексации, то все подполя также будут исключены из индексации.

Порядок ключей всегда отсортирован. Например, если вы напишете {c: "foo", a: "bar", b: "qux"} карта отсортирован по ключу и сохранить как {a: "bar", b: "qux", c: "foo"} .

Поля карты сортируются по ключу и сравниваются по парам ключ-значение, сначала сравниваются ключи, а затем значения. Если первые пары "ключ-значение" равны, сравниваются следующие пары "ключ-значение" и т. Д. Если две карты начинаются с одних и тех же пар "ключ-значение", учитывается длина карты. Например, следующие карты расположены в порядке возрастания:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Нулевой Никто -
Ссылка По элементам пути (коллекция, идентификатор документа, коллекция, идентификатор документа ...) Например, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Текстовая строка Порядок байтов в кодировке UTF-8 До 1 048 487 байт (1 МиБ - 89 байт). Только первые 1500 байтов представления UTF-8 рассматриваются запросами.

Порядок типов значений

Когда в запросе используется поле со значениями смешанных типов, Cloud Firestore использует детерминированный порядок на основе внутренних представлений. В следующем списке показан порядок:

  1. Нулевые значения
  2. Логические значения
  3. Целые числа и значения с плавающей запятой, отсортированные в числовом порядке
  4. Значения даты
  5. Значения текстовой строки
  6. Байтовые значения
  7. Ссылки Cloud Firestore
  8. Стоимость в географических точках
  9. Значения массива
  10. Значения карты