https://dongkyu.tistory.com/50
Flutter & Dart 디데이 & 가계부 앱 [러브페이] 만들기(1) - 바텀네비게이션
디데이, 가계부가 합쳐진 앱을 만들고자 한다. 앱 이름은 러브페이 라고 지었다. 앱은 홈(디데이), 가계부, 가계부통계, 마이페이지의 4가지의 탭으로 구성하겠다. 나는 GetX를 이용하여 상태관리
dongkyu.tistory.com
지난 글에 이어 이번엔 파이어베이스를 연결 하겠다.
서버, 데이터베이스 등이 없어서 파이어베이스를 이용하여 CRUD(생성,조회,수정,삭제) 를 할 것이다.
1. 파이어베이스 설치
1). firebase_core
https://pub.dev/packages/firebase_core/install
firebase_core install | Flutter package
Flutter plugin for Firebase Core, enabling connecting to multiple Firebase apps.
pub.dev
파이어베이스 사용을 위해 firebase_core를 설치 해 준다.
2) cloud_firestore
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
파이어베이스 데이터베이스 (firebase_store)를 사용하기 위해 설치한다
3) firebase_auth
https://pub.dev/packages/firebase_auth/install
firebase_auth install | Flutter package
Flutter plugin for Firebase Auth, enabling authentication using passwords, phone numbers and identity providers like Google, Facebook and Twitter.
pub.dev
추후 firebase 로그인을 위해 firebase_auth 로 함께 설치해준다.
2. 파이어베이스 설정하기
파이어베이스의 데이터베이스를 사용하기 위해서 Firestore Database를 생성 하여야 한다.
1) 데이터베이스 생성하기
빌드 - Firestore Database - 데이터베이스 만들기 버튼 클릭.
서버 위치 설정하는 부분인데 asia-northeast3(seoul)을 선택하자 그래도 서버가 가까이 있는게 좋을것같다.
프로덕션모드로 시작 선택 후 만들기 버튼을 클릭하여 데이터베이스를 생성한다.
Firestore Database를 사용하기 전 규칙을 들어가서 수정을 해줘야 한다.
기본으로 읽기, 쓰기가 거부상태로 셋팅 되어있다.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write, delete: if true;
}
}
}
읽기, 쓰기, 삭제를 하기 위해 delete를 추가 하고, true로 변경해주자.
이러면 파이어베이스에서는 설정이 완료 되었다.
2) 테이블 만들기
컬렉션 시작 버튼을 누른다.
컬렉션은 데이터베이스의 테이블이라고 생각 하면 된다.
테이블 명과 같은 컬렉션ID 입력 후 다음버튼 클릭하기
문서ID는 자동ID를 클릭해주고 제목,내용,일자 필드를 추가해주었다.
3. Flutter 파이어베이스 사용하기
import 'package:cloud_firestore/cloud_firestore.dart';
플러터에서 파이어베이스에 값을 저장하기 위해서 추가해준다.
1) 저장
final map = <String, dynamic>{};
map['date'] = ftDt.value.toString().substring(0, 10);
map['subject'] = subjectController.text;
map['content'] = contentController.text;
await FirebaseFirestore.instance.collection("dday").add(map);
위와같이 맵에 값을 추가해준 후 await FirebaseFirestore.instance.collection("dday")에 해당 맵을 넣어주면 데이터가 저장 된다.
.collection("dday") 는 테이블 선택이라고 생각 하면 될것이다.
2) 조회
var result = await firestore
.collection('dday')
.where('groupId', isEqualTo: LogInOut.groupIdReturn().value)
.orderBy('date', descending: false)
.get();
위와같이 firestore의 콜렉션 중 dday 를 선택하고 특정 조건, 오더바이를 설정 할 수 있다.
조회를 하게되면 documentId가 같이 조회 되는데 해당 데이터의 키값이라고 생각하면 된다.
3) 수정
final map = <String, dynamic>{};
map['date'] = ftDt.value.toString().substring(0, 10);
map['subject'] = subjectController.text;
map['content'] = contentController.text;
var documentReference = FirebaseFirestore.instance.collection("dday").doc(documentId);
await documentReference.update(map);
방법은 저장때와 동일 하지만 조회 시 나온 documentId를
var documentReference = FirebaseFirestore.instance.collection("dday").doc(documentId); 에서 이용하여
해당 값을 선택하여 await documentReference.update(map); 를 호출하여 데이터를 업데이트 해준다.
4) 삭제
var documentReference = FirebaseFirestore.instance.collection("dday").doc(documentId);
await documentReference.delete();
수정때와 동일한 방법으로 해당 값을 선택 후 삭제 한다.
다음엔 디데이 화면 구성과 실제 적용을 해보겠다.
'Flutter & Dart' 카테고리의 다른 글
[Flutter]플러터 달력 만들기 (0) | 2024.02.20 |
---|---|
[Flutter]플러터 디데이 & 가계부 앱 [러브페이] 만들기(3) - 디데이 (0) | 2024.02.16 |
[Flutter]플러터 디데이 & 가계부 앱 [러브페이] 만들기(1) - 바텀네비게이션 (1) | 2024.02.15 |
Flutter & Dart 구글 애드몹 광고 추가하기 2. 개발하기 (0) | 2024.01.25 |
Flutter & Dart 구글 애드몹 광고 추가하기 1. Google AdMob 설정 (0) | 2024.01.24 |