[flutter] 플러터로 Firebase Storage에 파일 업로드 상태를 모니터링하는 방법

Firebase Storage는 앱에서 파일을 안전하게 저장하고 엑세스할 수 있는 클라우드 스토리지 솔루션입니다. 이 글에서는 플러터 앱에서 Firebase Storage를 사용하여 파일을 업로드할 때 업로드 상태를 모니터링하는 방법에 대해 알아보겠습니다.

1. Firebase Storage 설정하기

먼저, Firebase 콘솔에서 프로젝트를 생성하고 Firebase Storage를 설정합니다. 생성된 프로젝트에 Firebase Storage를 연결하여 앱이 파일을 업로드할 수 있도록 환경을 구성합니다.

2. Firebase Storage 플러터 패키지 추가하기

플러터 앱에서 Firebase Storage를 사용하기 위해 firebase_storage 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  firebase_storage: ^4.0.0
  firebase_core: ^1.0.0

이후, 터미널에서 flutter packages get 명령어로 패키지를 다운로드합니다.

3. 파일 업로드 상태 모니터링 구현하기

플러터 앱에서 파일을 Firebase Storage에 업로드할 때, firebase_storage 패키지의 UploadTask 클래스를 사용하여 업로드 상태를 모니터링할 수 있습니다. 다음은 업로드 상태를 모니터링하는 예시 코드입니다.

final Reference storageRef = FirebaseStorage.instance.ref().child('example.jpg');
final UploadTask uploadTask = storageRef.putFile(exampleFile);

uploadTask.snapshotEvents.listen((TaskSnapshot snapshot) {
  print('상태: ${snapshot.state}'); // 업로드 상태 출력
  print('업로드된 바이트: ${snapshot.totalBytes / snapshot.bytesTransferred}%'); // 업로드된 바이트 출력
}, onError: (dynamic error) {
  print('오류 발생: $error'); // 오류 발생 시 처리
});

위의 코드에서 uploadTask.snapshotEvents를 사용하여 업로드 상태를 리스닝하고, TaskSnapshot 객체를 통해 업로드 상태 및 진행률을 가져올 수 있습니다.

이제, 플러터 앱에서 Firebase Storage에 파일을 업로드할 때, 업로드 상태를 모니터링하는 방법에 대해 알아보았습니다. Firebase Storage를 사용하여 파일을 업로드하고 상태를 확인하여 사용자 경험을 향상시킬 수 있습니다.

참고 자료