Firebase(Android)/Firestore
[Firestore] 2편 - 지원되는 데이터 타입
잘할수있을거야
2021. 11. 21. 22:32
- string
- number(실수,정수)
- boolean
- map (필드 내에서 추가적으로 필드들을 중첩시키기 위해 사용)
- null
- timestamp
- geopoint (위치(위도,경도))
쿼리제한으로 사용하지 말고 각 number 필드에 경도, 위도를 저장하라고 권하고 있다.
- reference (문서 위치)
collection2/document2 문서
collection/document 문서/ reference 타입 필드 지정
콘솔에서는 문자열로 입력하여 저장하기 때문에 실제로 어떻게 저장되는지 확인하기 위해 확인 해봤다.
각 지원되는 데이터 타입이 어떠한 클래스인지 확인하고 싶어서 찾아본 결과이다.
DocumentSnapshot클래스는 문서를 읽어올 때 태스크에서 받을 수 있는 클래스로 문서의 데이터를 가지고 있다.
다양한 메서드로 필드 키에 해당하는 값을 가져올 수 있는데
필드의 타입을 확실히 알고있을때 다음의 메서드들을 사용할 수 있다.
(밑의 메서드들은 각 지원되는 타입이 어떤 클래스인지 확인하기 위해 정리한 것이지, 이외에 필드경로를 인자로 넣어 사용하는 법등 많은 메서드가 존재한다)
- string타입 필드
- map타입 필드
중첩 데이터들
문서 전체에 해당하는 맵
중첩 필드의 값이 맵이라면
메서드를 사용하여 변환해야함
- number타입 필드
실수형
정수형
- 문서 reference타입 필드
- timestamp타입 필드
java.util.Date로 바꿔서 리턴해주는 메서드
- geopoint타입 필드
- boolean타입 필드
- 필드에 해당하는 값이 복잡하게 되어있는 경우(짬뽕, 배열등)
get(필드) :Any 를 사용하여 변환작업등을 하여 뽑아낸다.
Firestore 데이터베이스에 데이터 타입이 저장될 때 정렬되는 순서이다. 또한 비교등등 각 타입들에 대한 세부사항
쿼리에 다양한 유형이 섞여있는 경우, 값이 정렬되어 있는 상태