Firebase(Android)/Firestore

[Firestore] 2편 - 지원되는 데이터 타입

잘할수있을거야 2021. 11. 21. 22:32
  • string

 

  • number(실수,정수)

 

  • boolean

 

  • map (필드 내에서 추가적으로 필드들을 중첩시키기 위해 사용)

 

  • null

 

  • timestamp

 

  • geopoint (위치(위도,경도))

쿼리제한으로 사용하지 말고 각 number 필드에 경도, 위도를 저장하라고 권하고 있다.

 

  • reference (문서 위치)

collection2/document2 문서

 

collection/document 문서/ reference 타입 필드 지정


https://firebase.google.com/docs/firestore/manage-data/add-data?authuser=0#data_types


콘솔에서는 문자열로 입력하여 저장하기 때문에 실제로 어떻게 저장되는지 확인하기 위해 확인 해봤다.

각 지원되는 데이터 타입이 어떠한 클래스인지 확인하고 싶어서 찾아본 결과이다.

 

DocumentSnapshot클래스는 문서를 읽어올 때 태스크에서 받을 수 있는 클래스로 문서의 데이터를 가지고 있다.

다양한 메서드로 필드 키에 해당하는 값을 가져올 수 있는데

필드의 타입을 확실히 알고있을때 다음의 메서드들을 사용할 수 있다.

(밑의 메서드들은 각 지원되는 타입이 어떤 클래스인지 확인하기 위해 정리한 것이지, 이외에 필드경로를 인자로 넣어 사용하는 법등 많은 메서드가 존재한다)

 

  • string타입 필드

  • map타입 필드

중첩 데이터들

 

문서 전체에 해당하는 맵

중첩 필드의 값이 맵이라면

메서드를 사용하여 변환해야함

 

  • number타입 필드

실수형

정수형

 

  • 문서 reference타입 필드

 

  • timestamp타입 필드

java.util.Date로 바꿔서 리턴해주는 메서드

 

  • geopoint타입 필드

 

  • boolean타입 필드

 

  • 필드에 해당하는 값이 복잡하게 되어있는 경우(짬뽕, 배열등)

get(필드) :Any 를 사용하여 변환작업등을 하여 뽑아낸다.


Firestore 데이터베이스에 데이터 타입이 저장될 때 정렬되는 순서이다. 또한 비교등등 각 타입들에 대한 세부사항

 


쿼리에 다양한 유형이 섞여있는 경우, 값이 정렬되어 있는 상태