요 며칠 Firestore 관련해서 삽질을 많이 했다. 느낀 점을 정리해본다.
1. 읽고 , 쓰기 속도는 좀 걸린다.
- 최소 1~2초정도 걸린다. 이점을 고려해서 설계를 해야 할것 이다.
2. 모델링시 방법이 많은데 대략 3가지를 소개하고 있다.
https://firebase.google.com/docs/firestore/manage-data/structure-data?hl=ko
문서의 중첩 데이터
문서 내에 배열(맵) 등의 복합 개체를 중첩할 수 있습니다.
|
|
하위 컬렉션
데이터가 시간에 따라 증가할 가능성이 있다면 문서 내에 컬렉션을 만들 수 있습니다.
|
|
루트 수준 컬렉션
데이터베이스 루트 수준에 컬렉션을 만들어 상이한 데이터 세트를 정리합니다.
|
|
3. 그리고 컬렉션이 아니라 내부 맵(배열)에서 검색이 가능하다.
https://firebase.google.com/docs/firestore/solutions/arrays?hl=ko
내부적으로 맵을 넣어서 계층 검색을 할 수가 있다.
즉 members -> document id(컬렉션) -> member(객체들)
이런 구조이면 member 안에 map 형태를 넣어서 할수 있다.
예를 들어 map( key : photo , value : "path") 맵을 넣어서
whereEqualTo(member.photo , "path") 로 쿼리 가능 하다는 것이다.
4. 그리고 레퍼런스도 넣을 수 있다.
DocumentReferecne 를 객체에 삽입해서 넣을 수 있다.
하지만 가져올땐 계층적으로 못 가져오고 DocumentReference 를 가져오긴 한다. 흠..별 필요가 있는지?? ㅋㅋ
단점..
아직 서버쪽 어드민에서 Firestore를 지원 안해준다.. ㅠㅠ
관리를 어떻게 해야할지 막막하다..
아직 베타라서 그런지 서비스가 지원안되는게 좀 있다는 점?
속도가 중요한 앱은 설계를 잘 해야 할 것 같다.
1~2초씩 기본적으로 걸린다..
'링크모음 > Android' 카테고리의 다른 글
코틀린에서 테스트가 To Testsute 에러 나올시 (0) | 2018.01.12 |
---|---|
Live Templates 이용해서 자동 Comment 생성하자. (0) | 2018.01.09 |
Dagger 의존성 관련 설명 (0) | 2018.01.02 |
안드로이드 지도 100프로 트래킹하기 (0) | 2017.12.30 |
getFont 오류 나오는 경우 (0) | 2017.12.28 |