Firestore 프로젝트에 연동
https://wooastory.tistory.com/119
[Firebase] Cloud Firestore 사용해보기
[Firebase] Cloud Firestore 사용해보기 안녕하세요, Wooa Story입니다. Firebase에서 제공하는 데이터베이스를 사용해 보도록 하겠습니다. 데이터베이스 사용 전에 아직 Firebase 프로젝트 생성 및 안드로이드
wooastory.tistory.com
갑자기 Cloud Firestore 위치를 정하라길래 궁금해서 찾아봤다.
멀티 리전 위치는 미국처럼 전반적인 지역을 의미하고, 데이터베이스의 가용성 및 내구성을 최대화하려면 멀티 리전 위치를 선택하라고 권장하고 있다고 한다.
리전 내 위치도 있는데 캐롤라이나 남부처럼 지리적으로 특정된 위치이고, 비용 절감이나 애플리케이션이 지연 시간에 민감하여 지연 시간 단축이나 다른 GCP 리소스와 위치를 공유하려면 리전 내 위치를 선택하라고 권장하고 있단다.
사실 뭔 소린지 잘 모르겠다.
암튼 기본값으로 설정되어있는 nam5 (United States) 를 선택하기로 한다.
보안 규칙 설정하는데 프로덕션 모드와 테스트 모드 중에서 선택하는게 있었는데 프로덕션 모드는 모바일 및 웹 클라이언트의 모든 읽기 및 쓰기를 거부한고 한다. 그래서 프로덕션 모드를 선택하면 뭐가 안되는거냐
모든 사용자의 모든 문서 접근을 막는다.
Flutter 앱에서 이런 게 전부 안 됨:
- Firestore에 데이터 저장 (.set, .add, .update)
- Firestore에서 데이터 가져오기 (.get, .stream, .listen 등)
- 사용자 취향 저장, 여행 코스 불러오기 등 모든 DB 작업이 실패
즉, 클라이언트 앱은 Firestore를 읽을 수도 쓸 수도 없음.
- 테스트 모드로 시작해도 OK (30일 자동만료)
- 하지만 앱 베타 배포 전에 반드시 보안 규칙 커스터마이징해서 프로덕션 모드로 전환해야 해!
https://pub.dev/packages/cloud_firestore/install
cloud_firestore install | Flutter package
Flutter plugin for Cloud Firestore, a cloud-hosted, noSQL database with live synchronization and offline support on Android and iOS.
pub.dev
여기에서 최신 버전의 firestore를 확인하고 내 프로젝트의 pubspec.yaml 부분의 dependencies에 추가해야 한다. 버전이 꽤 중요한데 최신버전 아니면 호환안되서 생기는 오류가 발생할 수 있다.