[flutter] Firebase_core를 사용하여 플러터 앱에서 스토리지 사용하기

Firebase는 개발자가 애플리케이션 개발에 필요한 백엔드 서비스를 구축하는 데 도움을 주는 강력한 도구입니다. 이 중 Firebase Storage는 사용자가 앱에서 파일을 업로드, 다운로드 및 저장할 수 있는 클라우드 스토리지 서비스입니다. Flutter 애플리케이션에서 Firebase Storage를 사용하기 위해 firebase_core 패키지를 이용하는 방법을 살펴보겠습니다.

1. Firebase 프로젝트 설정

Firebase를 사용하려면 Firebase 프로젝트에 등록해야 합니다. Firebase 콘솔로 이동하여 새 프로젝트를 생성하고, Firebase SDK 구성 파일(google-services.json 또는 GoogleService-Info.plist)을 다운로드하세요.

2. Flutter 프로젝트에 Firebase_core 패키지 추가

플러터 프로젝트에서 Firebase 기능을 사용하려면 처음으로 firebase_core 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음 코드를 추가하세요:

dependencies:
  firebase_core: ^1.0.0

의존성을 추가한 후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 가져옵니다.

3. Firebase 프로젝트 초기화

Firebase 기능을 사용하기 위해 앱을 Firebase 프로젝트와 연결해야 합니다. 앱의 진입점인 main.dart 파일에서 Firebase를 초기화합니다. 다음과 같이 main() 메소드 안에 다음 코드를 추가하세요:

import 'package:firebase_core/firebase_core.dart';

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

위 코드에서 await Firebase.initializeApp()를 통해 Firebase를 초기화하고 앱을 실행합니다.

4. Firebase Storage 사용하기

이제 Firebase Storage를 사용하여 파일을 업로드하고 다운로드하는 방법을 알아보겠습니다.

파일 업로드

import 'package:firebase_storage/firebase_storage.dart' as firebase_storage;
import 'package:path/path.dart' as path;

Future<String> uploadFileToFirebase(String filePath) async {
  String fileName = path.basename(filePath);
  firebase_storage.Reference ref =
      firebase_storage.FirebaseStorage.instance.ref().child(fileName);
  await ref.putFile(File(filePath));
  return await ref.getDownloadURL();
}

위 코드는 uploadFileToFirebase() 함수를 정의하는 예시입니다. 이 함수는 로컬 파일 경로를 입력으로 받고, 해당 파일을 Firebase Storage에 업로드한 후 다운로드 URL을 반환합니다.

파일 다운로드

import 'package:firebase_storage/firebase_storage.dart' as firebase_storage;

Future<Uint8List> downloadFileFromFirebase(String fileURL) async {
  firebase_storage.Reference ref =
      firebase_storage.FirebaseStorage.instance.refFromURL(fileURL);
  Uint8List bytes = await ref.getData();
  return bytes;
}

위 코드는 downloadFileFromFirebase() 함수를 정의하는 예시입니다. 이 함수는 Firebase Storage에 저장된 파일의 다운로드 URL을 입력으로 받고, 해당 파일을 다운로드하여 Uint8List 형태로 반환합니다.

이제 Firebase Storage를 통해 파일을 업로드하고 다운로드하는 기능을 가진 Flutter 앱을 만들 수 있습니다.

결론

Firebase_core를 사용하여 Flutter 앱에서 Firebase Storage를 사용하는 방법에 대해 알아보았습니다. Firebase Storage는 간편한 클라우드 스토리지 솔루션으로, 다양한 파일을 효과적으로 관리할 수 있습니다. Firebase와 Flutter의 강력한 조합을 통해 더욱 멋진 앱을 개발할 수 있습니다.

참고 자료: