2019. 5. 18. 22:13 IT/유니티 Tip & 파헤치기
firebase 사용기 - DB (Firestore)
* 먼저 해당 포스트는 튜토리얼이 아닌 Firebase 사용하는 과정에서 발생한 오류 및 해결과정, TIP 중심의 글임을 알려드립니다.
* Firebase 설명 자체가 굉장히 잘 되어있으므로 튜토리얼은 Firebase를 참고하세요. 여기서 발생한 오류/정보도 Firebase 가이드에 있으나 놓쳤을 확률이 높습니다
1. 사용하면서 느낀 Realtime VS Firestore
- 우선 전체적으로 사용자 관점에서는 Firestore가 좋습니다.
- 다만 Firestore의 단점은 베타라는 점과 데이터 옮기기가 조금 더 번거롭다는 점.
- 쿼리문
- Realtime
- 내림차순이 없습니다;;; ( 내림차순 하나면 처리될 쿼리가 엄청 복잡해질 수 있습니다..)
- 여기서 트랜젝션 개념은 여러 일의 원자성 보장이 아닌 한가지 일에 대한 동시접근을 못하게 보장 (lock 개념과 비슷하다)
- 여러 일에 대한 원자성 보장은 동시 업데이트를 사용한다.
- https://firebase.google.com/docs/database/web/read-and-write#update_specific_fields
- Firestore
- 관계형 DB에서 사용하는 쿼리를 무늬로라도 따라 만들었다. 그래서 RDB에 익숙한 분에게는 더 직관적이다.
- 서로 다른 필드에 대한 복합 쿼리 필요시에는 firestore 색인 등록이 필요하다.
- 색인 등록을 안하면 아예 동작을 안함.
- 여러 일의 원자성을 보장하려면 transaction과 일괄 쓰기 사용
- Realtime
- 저장방식
- Realtime
- 완전 JSON이라 봐도 무방 - 실제로 import , export도 json 형식으로 연동되서, 데이터를 이동하기 편하다.
- Firestore
- 문서와 컬렉션으로 이루어져있다.
- 문서는 필드 (정보) 와 컬랙션으로 이루어진다.
- 컬랙션은 여러 문서 리스트로 이루어진다.
- 데이터를 통채로 이동시키기 약간 번거롭다.
- 문서와 컬렉션으로 이루어져있다.
- Realtime
- 개인적으로 저장방식은 Realtime이나 Firestore나 비슷한 것 같습니다.
2. Firestore 복합쿼리가 동작하지 않음 ( 아무것도 찾지 못한다)
- 서로 다른 필드에 대해서는 색인 등록을 해야한다.
3. 규칙을 설정했으나 Function으로 접근시 규칙이 무시된다.
- 파이어베이스 Functions에서의 DB 접근은 모든 규칙을 무시한다.
- DB의 규칙은 클라이언트에서의 접근에 적용된다.
'IT > 유니티 Tip & 파헤치기' 카테고리의 다른 글
Firebase 사용기 - Functions (0) | 2019.05.19 |
---|---|
Unity ECS (Entity Component System) Study - 2. 성능 밴치마크 (0) | 2019.05.19 |
firebase 사용기 - 인증 ( auth ) (0) | 2019.05.18 |
Firebase 사용기 - 1. 개요 (0) | 2019.05.18 |
Unity ECS (Entity Component System) Study - 1. 개요 (5) | 2019.05.18 |