본문 바로가기
Flutter/Flutter Programming

플러터에서 파이어베이스 스토리지 이미지 URL로 이미지 삭제하기

by Maccrey 2024. 6. 20.
반응형

안녕하세요, 플러터 개발자 여러분!

오늘은 플러터 앱에서 파이어베이스 스토리지에 저장된 이미지를 삭제하는 방법을 자세히 알려드리겠습니다.

1. 필요한 패키지 설치

먼저, 프로젝트에 firebase_storage 패키지를 설치해야 합니다. 아직 설치하지 않았다면 다음 명령어를 실행하여 설치합니다.

pub add firebase_storage
 

또한, pubspec.yaml 파일에 다음과 같은 의존성을 추가합니다.

dependencies:
  firebase_storage: ^6.0.0
 

2. 이미지 URL 파싱

파이어베이스 스토리지 이미지 URL은 다음과 같은 형식을 가지고 있습니다.

https://firebasestorage.googleapis.com/v0/b//o/?alt=media&token=

위 URL에서 이미지 경로를 추출하려면 다음과 같은 코드를 사용할 수 있습니다.

String extractImagePath(String url) {
  final startIdx = url.indexOf('/o/') + 3;
  final endIdx = url.indexOf('?alt=media');
  return url.substring(startIdx, endIdx);
}
 

예를 들어, 위에서 제공된 예시 URL을 사용하면 다음과 같은 경로가 추출됩니다.

postImages/2024.6.17_13:27_App_scaled_1000000019.jpg

3. 이미지 삭제

이제 추출한 이미지 경로를 사용하여 파이어베이스 스토리지에서 이미지를 삭제할 수 있습니다.

다음은 StorageReference를 사용하여 이미지를 삭제하는 방법입니다.

Future<void> deleteImage(String imagePath) async {
  final storage = FirebaseStorage.instance;
  final reference = storage.ref().child(imagePath);
  await reference.delete();
}
 

4. 예시 코드

다음은 파이어베이스 스토리지에서 이미지를 삭제하는 전체 예시 코드입니다.

import 'package:firebase_storage/firebase_storage.dart';

Future<void> deleteImageFromFirebaseStorage(String imageUrl) async {
  final imagePath = extractImagePath(imageUrl);
  await deleteImage(imagePath);
}
 

5. 주의 사항

  • 이미지를 삭제하기 전에 사용자가 이미지 삭제를 허용했는지 확인해야 합니다.
  • 이미지가 게시글이나 다른 곳에서 사용되고 있지 않은지 확인해야 합니다.
  • 이미지 삭제 오류 처리 코드를 추가해야 합니다.

6. 참고 자료

이 블로그 게시글이 플러터 앱에서 파이어베이스 스토리지 이미지를 삭제하는 데 도움이 되었으면 좋겠습니다.

궁금한 점이나 추가적으로 알고 싶은 내용이 있으면 언제든지 질문해주세요!

 

 

수발가족을 위한 일기장 “나비일기장

 

https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release

 

구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"

 

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

 

 

카카오톡 오픈 채팅방

https://open.kakao.com/o/gsS8Jbzg

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

 

반응형