플러터와 파이어베이스 2탄- 파이어스토어에 자료 저장하기(create)-(1)
플러터와 파이어베이스 2탄 파이어 스토어에 저장하기 편입니다. CRUD 중 Create에 해당하는 내용인데요. 파이어베이스 초기 설정을 하지 않으신 분은 아래 링크로 가셔서 파이어 베이스와 플러터 프로젝트를 연결해 주시기 바랍니다.
https://jh-industry.tistory.com/61
제가 전에 만든 파이어 스토어 관련 포스팅입니다. 여기 더 자세한 설명이 있으니 초심자 분들은 여기 보셔도 될거 같습니다.
파이어스토어 관련 복습
자세한 내용은 링크를 참조해 주시기 바랍니다. 클릭해주세요
- 콜렉션은 다른 데이터베이스에 테이블이랑 같은 개념이고 다큐먼트는 각각의 데이터(row, record)를 의미합니다.
- DocumentReference는 특정 다큐먼트(데이터)의 위치를 나타내는 자료형 -> pk랑 비슷한 의미로 이해 될듯...
- 실제 데이터는 DocumentSnapshot 형태로 가지고 옵니다.
- CollectionReference - QuerySnapshot 특정 콜렉션 안에 있는 다큐멘트들을 가져올때 사용합니다.
필요한 패키지를 설치
cloud_firestore: ^3.1.17
자료형 만들기(클래스 만들기)
플러터에서 파이어베이스로 자료를 저장하고 불러올때는 클래스로 하나의 자료형을 만들어서 데이터를 처리합니다.
이걸 편하게 해주는 플러그인이 Json to Dart입니다. 이 플러그인을 사용하면 손쉽게 클래스를 만들수 있습니다. 단, 어느정도 실제 자료형에 맞게 수정은 필요합니다.
제가 만든 자료형은 아래와 같습니다. 단순히 문자열과 시간만 저장하려고합니다.
import 'package:cloud_firestore/cloud_firestore.dart';
/// motto : "세계적 클래스의 타이탄들에게는 초능력이 없었다. 대신 그들에게는 뚜렷한 목표(계획)가 있다."
/// date : "2022-03-29 13:02:21"
/// reference : "reference"
class FireModel {
// 사용되는 자료형
String? motto;
Timestamp? date;
DocumentReference? reference;
//생성자
FireModel({
this.motto,
this.date,
this.reference,
});
//json => Object로, firestore에서 불러올때
FireModel.fromJson(dynamic json, this.reference) {
motto = json['motto'];
date = json['date'];
}
// Named Constructor with Initializer
// fromSnapShot Named Constructor로 snapshot 자료가 들어오면 이걸 다시 Initializer를 통해
// fromJson Named Constructor를 실행함
// DocumentSnapshot 자료형을 받아 올때 사용하는 Named Constructor
// 특정한 자료를 받아 올때 사용한다.
FireModel.fromSnapShot(DocumentSnapshot<Map<String, dynamic>> snapshot)
: this.fromJson(snapshot.data(), snapshot.reference);
// Named Constructor with Initializer
// 컬렉션 내에 특정 조건을 만족하는 데이터를 다 가지고 올때 사용한다.
FireModel.fromQuerySnapshot(
QueryDocumentSnapshot<Map<String, dynamic>> snapshot)
: this.fromJson(snapshot.data(), snapshot.reference);
//Object => json, firestore에 저장할때
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['motto'] = motto;
map['date'] = date;
return map;
}
}
여기까지 하셨으면 firebase로 CRUD 구현에 절반은 하신겁니다. 다음은 저장하는 코드를 구현해보겠습니다.
2022.06.16 - 플러터와 파이어베이스 2탄- 파이어스토어에 자료 저장하기(create)-(2)
2022.06.17 - 플러터와 파이어베이스 3탄 - 파이어 베이스 데이터 가져오기(READ)-DocumentReference란?? CollectionReference
2022.06.19 - 플러터와 파이어베이스 4탄 - 파이어스토어에 데이터 수정하기(UPDATE), 데이터 삭제하기(Delete)
'플러터관련 정보 > 파이어 베이스(플러터)' 카테고리의 다른 글
플러터와 파이어베이스 3탄 - 파이어 베이스 데이터 가져오기(READ)-DocumentReference란?? CollectionReference (0) | 2022.06.17 |
---|---|
플러터와 파이어베이스 2탄- 파이어스토어에 자료 저장하기(create)-(2) (0) | 2022.06.16 |
플러터와 파이어베이스 1탄- 플러터 3.0 업데이트 후 파이어베이스(firebase) 연동(2) (0) | 2022.06.07 |
[flutter,firestore] 파이어 스토어 필터링 후 정렬하기 - 복합색인, 태그검색 기능 구현 (0) | 2022.06.06 |
[Flutter, firebase]파이어 스토어에서 데이터 저장하고 불러오기 (0) | 2022.04.13 |
댓글