728x90
반응형
파이어베이스 스토리지는 이미지, 동영상, 오디오 파일 등 다양한 종류의 데이터를 저장하는 데 사용할 수 있는 강력한 서비스입니다.
이 블로그 글에서는 초보자 개발자를 위해 플러터 앱에서 파이어베이스 스토리지 이미지를 주소만 사용하여 삭제하는 방법을 자세히 안내합니다.
1. 필요한 라이브러리
먼저, pubspec.yaml 파일에 다음 라이브러리를 추가해야 합니다.
dependencies:
firebase_core: ^1.12.0
firebase_storage: ^10.3.1
터미널에서 다음 명령을 실행하여 라이브러리를 설치합니다.
Bash
flutter pub get
2. 삭제 프로세스
2.1 스토리지 인스턴스 가져오기
// 스토리지 인스턴스 가져오기
final FirebaseStorage storage = FirebaseStorage.instance;
2.2 이미지 주소 파싱
먼저, 삭제하려는 이미지의 주소를 파싱하여 버킷 이름, 파일 경로, 액세스 토큰을 추출해야 합니다.
- 버킷 이름: test-dfcda.appspot.com - 파일 경로: boards_Images/2024.4.28%20_1%3A4_Icon_scaled_biohnya_123.png - 액세스 토큰: 8876bce8-d90f-4e9d-80c5-b0d6139cca55
2.3 파일 삭제 함수
Dart
// 파일 삭제 함수
Future<void> deleteImageFromStorage(String bucketName, String filePath, String accessToken) async {
try {
// 스토리지 참조 가져오기
final storageRef = storage.refFromUrl('gs://$bucketName/$filePath?alt=media&token=$accessToken');
// 파일 삭제
await storageRef.delete();
print('이미지 삭제 성공');
} on FirebaseException catch (e) {
// 에러 처리
print('이미지 삭제 오류: ${e.message}');
}
}
2.4 예시: 이미지 주소로 삭제
import 'package:flutter/material.dart';
import 'package:firebase_storage/firebase_storage.dart';
class ImageDeleteScreen extends StatefulWidget {
@override
_ImageDeleteScreenState createState() => _ImageDeleteScreenState();
}
class _ImageDeleteScreenState extends State<ImageDeleteScreen> {
String _storageUrl = 'https://firebasestorage.googleapis.com/v0/b/testershare-dfcda.appspot.com/o/boards_Images%2F2024.4.28%20_1%3A4_Icon_scaled_biohnya_1024.png?alt=media&token=8876bce8-d90f-4e9d-80c5-b0d6139cca03';
// 이미지 주소 파싱 함수
void _parseStorageUrl() {
final urlParts = Uri.parse(_storageUrl);
final bucketName = urlParts.host;
final filePath = urlParts.pathSegments.last;
final accessToken = urlParts.queryParameters['token']!;
deleteImageFromStorage(bucketName, filePath, accessToken);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image Delete'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('삭제하려는 이미지 주소: $_storageUrl'),
SizedBox(height: 20),
ElevatedButton(
onPressed: _parseStorageUrl,
child: Text('이미지 삭제'),
),
],
),
),
);
}
}
3. 주의 사항
- 파일 삭제 권한이 있는지 확인해야 합니다.
- 삭제된 파일은 복구할 수 없으므로 신중하게 수행해야 합니다.
- 오류 처리 및 예외 처리를 적절하게 구현해야 합니다.
- 실제 앱에서 사용 시에는 주소 파싱 부분을 실제로 사용하는 환경에 맞게 변경해야 합니다.
4. 추가 정보
- Firebase Storage 공식 문서: https://firebase.google.com/docs/storage
- Flutter에서 Firebase Storage 사용: https://firebase.google.com/docs/storage/flutter/start
이 블로그 글에서 소개된 내용을 통해 플러터 앱에서 파이어베이스 스토리지 이미지를 주소만 사용하여 삭제하는 방법을 쉽게 이해하셨기를 바랍니다.
더 궁금한 점이나 도움이 필요한 부분이 있으면 언제든지 질문해주세요.
728x90
반응형
'Flutter > Firebase' 카테고리의 다른 글
플러터에서 FCM 백그라운드와 포어그라운드 앱 동작 제어: 알림 예시를 통한 이해 (0) | 2024.07.25 |
---|---|
플러터에서 파이어베이스 FCM 초보자용 사용방법 가이드 (0) | 2024.07.17 |
플러터에서 파이어베이스 스토리지 사용하기 위한 CRUD: 초보자 가이드 (0) | 2024.07.17 |
플러터에서 파이어베이스 CRUD 구현 및 자세한 사용법 가이드 (0) | 2024.07.17 |
[파이어베이스] 플러터에서 Google 로그인 구현하기 (0) | 2024.07.16 |