본문 바로가기
Flutter/Firebase

플러터에서 Firebase Cloud Storage 개발을 위한 에뮬레이터 설치 및 사용 방법 가이드

by Maccrey Coding 2024. 9. 2.
반응형

 

Firebase Cloud Storage는 애플리케이션에서 파일을 저장하고 관리할 수 있는 강력한 도구입니다.

그러나 실제 Firebase Cloud Storage를 사용하면서 개발과 테스트를 진행하는 것은 비용이 발생할 수 있고, 데이터에 직접적으로 영향을 줄 수 있습니다.

이럴 때 Firebase Cloud Storage 에뮬레이터를 활용하면 로컬 환경에서 안전하게 개발과 테스트를 진행할 수 있습니다.

이번 포스팅에서는 플러터에서 Firebase Cloud Storage 에뮬레이터를 설치하고 사용하는 방법을 단계별로 설명하겠습니다.

1. Firebase Cloud Storage 에뮬레이터란?

Firebase Cloud Storage 에뮬레이터는 Firebase Cloud Storage의 로컬 버전으로, 실제 Firebase 서버에 배포하지 않고도 로컬 환경에서 파일 업로드, 다운로드, 삭제 등을 테스트할 수 있는 도구입니다. 이를 통해 파일 관리 기능을 로컬에서 안전하게 검증할 수 있습니다.

2. Firebase Cloud Storage 에뮬레이터 설치하기

에뮬레이터를 설치하고 설정하는 과정은 다음과 같습니다.

1) Node.js 및 Firebase CLI 설치

Firebase Cloud Storage 에뮬레이터를 사용하기 위해 Node.js와 Firebase CLI가 필요합니다. Node.js가 설치되어 있지 않다면 Node.js 공식 웹사이트에서 다운로드하여 설치하세요.

그 다음, Firebase CLI를 설치합니다. 터미널에서 다음 명령어를 입력합니다.

npm install -g firebase-tools

2) Firebase 프로젝트 초기화

Firebase 프로젝트 디렉터리로 이동한 후, Firebase CLI를 사용해 프로젝트를 초기화합니다. 터미널에서 다음 명령어를 실행합니다.

firebase init

여기서, Storage 항목을 선택하고, Emulators 항목을 선택하여 Cloud Storage 에뮬레이터를 설정합니다.

3) Firebase Cloud Storage 에뮬레이터 설정

Firebase 프로젝트 설정 파일(firebase.json)에서 Cloud Storage 에뮬레이터를 설정합니다. 파일에 다음과 같이 추가합니다.

{
  "emulators": {
    "storage": {
      "port": 9199
    }
  }
}

여기서 9199는 Cloud Storage 에뮬레이터의 기본 포트 번호입니다. 필요에 따라 다른 포트 번호를 사용할 수도 있습니다.

3. Firebase Cloud Storage 에뮬레이터 시작하기

Firebase Cloud Storage 에뮬레이터를 실행하려면, 터미널에서 다음 명령어를 입력합니다.

firebase emulators:start

이 명령어를 실행하면 Firebase Cloud Storage 에뮬레이터가 로컬 환경에서 시작됩니다. 에뮬레이터가 실행되면 설정한 포트 번호를 통해 접근할 수 있습니다.

4. 플러터에서 Firebase Cloud Storage 에뮬레이터 연결하기

에뮬레이터가 실행되고 나면, 플러터 애플리케이션에서 Firebase Cloud Storage 에뮬레이터를 사용하기 위해 다음과 같이 설정합니다.

1) Firebase 패키지 설치

먼저, firebase_core와 firebase_storage 패키지를 pubspec.yaml에 추가합니다.

dependencies:
  firebase_core: latest_version
  firebase_storage: latest_version

2) Firebase 초기화 및 에뮬레이터 연결

플러터 애플리케이션의 메인 파일(main.dart)에서 Firebase를 초기화하고, 에뮬레이터에 연결합니다.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // Firebase Cloud Storage 에뮬레이터에 연결
  FirebaseStorage.instance.useStorageEmulator('localhost', 9199);

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Firebase Cloud Storage Emulator Example'),
        ),
        body: Center(
          child: Text('Firebase Cloud Storage Emulator is set up!'),
        ),
      ),
    );
  }
}

이 코드에서 localhost와 9199는 Firebase Cloud Storage 에뮬레이터의 주소와 포트 번호입니다. 실제 에뮬레이터의 주소와 포트 번호에 맞게 설정하세요.

5. Firebase Cloud Storage 기능 테스트하기

이제 Firebase Cloud Storage 에뮬레이터를 통해 다양한 파일 관리 기능을 테스트할 수 있습니다. 예를 들어, 파일을 업로드하거나 다운로드하는 기능을 구현하여 테스트해 볼 수 있습니다.

1) 파일 업로드

다음 코드를 사용하여 파일을 업로드할 수 있습니다.

import 'dart:io';
import 'package:path/path.dart';

void uploadFile(File file) async {
  try {
    final storageRef = FirebaseStorage.instance.ref();
    final fileRef = storageRef.child('uploads/${basename(file.path)}');
    final uploadTask = fileRef.putFile(file);

    final snapshot = await uploadTask.whenComplete(() => {});
    final downloadUrl = await snapshot.ref.getDownloadURL();
    print('File uploaded to: $downloadUrl');
  } catch (e) {
    print('Error uploading file: $e');
  }
}

2) 파일 다운로드

다음 코드를 사용하여 파일을 다운로드할 수 있습니다.

void downloadFile(String fileName) async {
  try {
    final storageRef = FirebaseStorage.instance.ref();
    final fileRef = storageRef.child('uploads/$fileName');
    final downloadUrl = await fileRef.getDownloadURL();
    
    // Use the download URL to download the file or display it in the app
    print('File available at: $downloadUrl');
  } catch (e) {
    print('Error downloading file: $e');
  }
}

이 코드를 사용하여 Cloud Storage 에뮬레이터에 파일을 업로드하고 다운로드하여 결과를 확인할 수 있습니다.

 

 

Firebase Cloud Storage 에뮬레이터를 사용하면 플러터 개발자들은 로컬 환경에서 안전하고 효율적으로 Cloud Storage 기능을 개발하고 테스트할 수 있습니다.

에뮬레이터의 설치와 설정 방법을 통해 실제 Firebase 서비스에 영향을 미치지 않으면서도 효과적인 개발과 디버깅이 가능합니다.

이번 가이드가 여러분의 개발에 도움이 되기를 바랍니다!

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형