플러터와 파이어베이스 2탄- 파이어스토어에 자료 저장하기(create)-(2)
이전편에서 편리하게 데이터를 가공하기위한 자료형을 만들었습니다.
이번에는 파이어베이스 공식 문서를 보고 데이터를 파이어스토어에 저장하는 코드를 작성해보도록 하겠습니다.
이 포스팅은 코딩파파님의 강의를 듣고 다시 한번 복습하는 의미에서 작성된 포스팅입니다.
이전편: https://jh-industry.tistory.com/65
파이어베이스 공식문서: https://firebase.google.com/docs/firestore
CRUD 구현을 위한 클래스 만들기- Create 부분만
이전에 set을 이용해서 데이터를 저장하는 코딩파파님의 방식에서 공식 문서에 간단하게 설명하고 있는 add 방식으로 해보겠습니다.
파이어베이스에 저장하는 클래스 구현
앞으로 이 FireService클래스 안에 CRUD를 모두 구현할 예정입니다. 그래서 별도의 fire_service.dart 파일을 만들어서 그 안에 아래와 같이 클래스를 하나 만들었습니다. 현재는 간단한게 add를 이용해서 파이어베이스 저장하는 함수 구현하였습니다.그리고 싱글톤 패턴을 사용했는 아래 코드가 어떻게 작동되는지 왜 저렇게 하는지는 좀 더 공부가 필요 할거 같습니다.
import 'package:cloud_firestore/cloud_firestore.dart';
class FireService {
// 싱글톤 패턴
static final FireService _fireService = FireService._internal();
factory FireService() => _fireService;
FireService._internal();
//Create
Future createMemo(Map<String, dynamic> json) async {
// 초기화
await FirebaseFirestore.instance.collection("memo").add(json);
}
}
실제 화면에서 저장하는 기능 구현
아주 간단하게 버튼을 눌렀을때 저장하는 기능이 동작하는 코드를 아래와 같습니다. 우선 FireModel 인스턴스를 만들고 앞서 만든 FireService에 저장하는 함수를 실행 시킵니다. 이때 저장할 데이터는 toJson() 함수를 이용하여 Json형태로 바꿔줍니다. 이렇게 하면 파이어스토어에 쉽게 저장하는 기능을 구현할수 있습니다.
TextButton(
onPressed: () async {
FireModel _fireModel = FireModel(
motto: _inputController.text, date: Timestamp.now());
await FireService().createMemo(_fireModel.toJson());
},
child: const Icon(Icons.send)),
이렇게 잘 저장된 모습을 보실수 있습니다.
이것으로 파이어베이스 CRUD 중 Create 부분을 마치겠습니다.
2022.06.17 - 플러터와 파이어베이스 3탄 - 파이어 베이스 데이터 가져오기(READ)-DocumentReference란?? CollectionReference
2022.06.19 - 플러터와 파이어베이스 4탄 - 파이어스토어에 데이터 수정하기(UPDATE), 데이터 삭제하기(Delete)
2023.02.25 - [플러터와 파이어베이스] 데이터 쿼리 정리(WHERE 문)
'플러터관련 정보 > 파이어 베이스(플러터)' 카테고리의 다른 글
플러터와 파이어베이스 4탄 - 파이어스토어에 데이터 수정하기(UPDATE), 데이터 삭제하기(Delete) (0) | 2022.06.19 |
---|---|
플러터와 파이어베이스 3탄 - 파이어 베이스 데이터 가져오기(READ)-DocumentReference란?? CollectionReference (0) | 2022.06.17 |
플러터와 파이어베이스 2탄- 파이어스토어에 자료 저장하기(create)-(1) (0) | 2022.06.14 |
플러터와 파이어베이스 1탄- 플러터 3.0 업데이트 후 파이어베이스(firebase) 연동(2) (0) | 2022.06.07 |
[flutter,firestore] 파이어 스토어 필터링 후 정렬하기 - 복합색인, 태그검색 기능 구현 (0) | 2022.06.06 |
댓글