[flutter] Firebase Database와 플러터를 이용한 공동 구매 애플리케이션 만들기

이번 포스팅에서는 Firebase Database와 Flutter를 이용하여 공동 구매 애플리케이션을 만드는 방법에 대해 알아보겠습니다.

목차

  1. Firebase Project 생성
  2. Firebase Database 설정
  3. Flutter 프로젝트 생성
  4. Firebase와 Flutter 연동
  5. 데이터 저장 및 조회
  6. 애플리케이션 구현

1. Firebase Project 생성

  1. Firebase 콘솔 (https://console.firebase.google.com/)에 접속합니다.
  2. 프로젝트 생성을 클릭하고 애플리케이션 이름을 입력합니다.

2. Firebase Database 설정

  1. Firebase 콘솔에서 “Database”를 선택합니다.
  2. “Create Database”를 클릭합니다.
  3. “Start in test mode”를 선택하고 “Next”를 클릭합니다.
  4. 데이터베이스 위치를 선택하고 “Enable”을 클릭합니다.

3. Flutter 프로젝트 생성

  1. Flutter 개발 환경을 설치하고 프로젝트를 생성합니다.
flutter create shared_purchase_app
cd shared_purchase_app

4. Firebase와 Flutter 연동

  1. pubspec.yaml 파일에 Firebase와 Firestore 관련 의존성을 추가합니다.
dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^0.8.0
  cloud_firestore: ^2.0.0
  1. Firebase 프로젝트에서 생성한 google-services.json 파일을 프로젝트의 android/app 폴더에 추가합니다.
  2. android/build.gradle 파일에 Google Services 플러그인을 추가합니다.
dependencies {
    // ...

    classpath 'com.google.gms:google-services:4.3.8'
}
  1. android/app/build.gradle 파일의 맨 아래에 플러그인을 적용합니다.
apply plugin: 'com.google.gms.google-services'

5. 데이터 저장 및 조회

  1. Firebase Firestore에 데이터를 저장하기 위한 모델 클래스를 생성합니다.
class Product {
  final String name;
  final int price;

  Product({required this.name, required this.price});
}
  1. Firestore에 데이터를 저장하는 코드를 작성합니다.
import 'package:cloud_firestore/cloud_firestore.dart';

class ProductService {
  final FirebaseFirestore _firestore = FirebaseFirestore.instance;

  Future<bool> saveProduct(Product product) async {
    try {
      await _firestore.collection('products').add({
        'name': product.name,
        'price': product.price,
      });
      return true;
    } catch (e) {
      print('Failed to save product: $e');
      return false;
    }
  }
}
  1. Firestore에서 데이터를 조회하는 코드를 작성합니다.
import 'package:cloud_firestore/cloud_firestore.dart';

class ProductService {
  final FirebaseFirestore _firestore = FirebaseFirestore.instance;

  Stream<List<Product>> getProducts() {
    return _firestore.collection('products').snapshots().map((snapshot) {
      return snapshot.docs.map((doc) {
        return Product(
          name: doc['name'],
          price: doc['price'],
        );
      }).toList();
    });
  }
}

6. 애플리케이션 구현

  1. 필요한 위젯을 구현하고 Firestore에서 데이터를 조회하여 화면에 표시합니다.
  2. 사용자가 데이터를 입력하고 Firestore에 저장할 수 있는 기능을 추가합니다.
  3. 필요한 기능을 추가하고 UI를 개선하여 사용자가 편리하게 애플리케이션을 사용할 수 있도록 개발합니다.

이제 Firebase Database와 Flutter를 이용하여 공동 구매 애플리케이션을 만드는 방법을 알아보았습니다. Firebase의 다양한 기능을 활용하여 실제 사용자에게 유용한 기능을 추가해보세요.

참고 자료