지원되는 데이터 유형

이 페이지에서는 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바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 처음 1,500바이트만 고려됩니다.
날짜 및 시간 시간순 Cloud Firestore에 저장된 경우, 마이크로초까지만 정확하며 그 이상의 정확도는 내림됩니다.
부동 소수점 수 숫자 64비트 배정밀도이며 IEEE 754입니다.
지리적 지점 위도순 우선 적용 후 경도순 현재 쿼리 제한사항으로 인해 이 데이터 유형은 사용하지 않는 것이 좋습니다. 일반적으로 위도와 경도를 별도의 숫자 필드로 저장하는 것이 좋습니다. 앱에 간단한 거리 기반 지역 쿼리가 필요한 경우 지역 쿼리를 참조하세요.
정수 숫자 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"}

NaN 없음
Null 없음
참조 경로 요소순(컬렉션, 문서 ID, 컬렉션, 문서 ID...) 예를 들면 projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]입니다.
텍스트 문자열 UTF-8로 인코딩된 바이트순 최대 1,048,487바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 UTF-8로 표시된 처음 1,500바이트만 고려됩니다.

값 유형 순서

쿼리에 혼합 유형 값이 있는 필드가 포함된 경우 Cloud Firestore에서 내부 표시를 기준으로 확정된 순서를 사용합니다. 순서는 다음 목록과 같습니다.

  1. Null 값
  2. 부울 값
  3. NaN 값
  4. 숫자순으로 정렬된 정수 및 부동 소수점 값
  5. 날짜 값
  6. 텍스트 문자열 값
  7. 바이트 값
  8. Cloud Firestore 참조
  9. 지리적 지점 값
  10. 배열 값
  11. 지도 값