uploadFiles method
Implementation
Future<void> uploadFiles(String uid) async {
/// [uid] 는 업로드 대상의 uid
try {
// Firebase Storage에서 삭제할 기존 이미지 삭제
for (var imageUrl in _removedImages) {
await _crudService.deleteFile(uid, imageUrl);
debugPrint("[[ItemImageController.uploadImages]]: Deleted $imageUrl");
}
// 새로 추가된 로컬 이미지들을 Firebase에 업로드 후 URL 가져오기
List<String> uploadedImageUrls = [];
for (var image in _localImages) {
final imageUrl = await uploadFile(uid, image);
uploadedImageUrls.add(imageUrl);
}
debugPrint(
"[[ItemImageController.uploadImages]]: Uploaded $uploadedImageUrls");
// 업데이트된 이미지 리스트 만들기 (기존 이미지 + 새 이미지)
// final updatedImagePaths = [
// ...state?.filePaths ?? [],
// ...uploadedImageUrls,
// ].cast<String>();
// debugPrint(
// "[[ItemImageController.uploadImages]]: Updated $updatedImagePaths");
_updatedImagePaths
..addAll(state?.filePaths ?? [])
..addAll(uploadedImageUrls);
debugPrint(
"[[ItemImageController.uploadImages]]: Updated $updatedImagePaths");
// State 업데이트
state = state?.copyWith(filePaths: updatedImagePaths);
debugPrint("[[ItemImageController.uploadImages]]: State updated $state");
// 상태 초기화
_localImages.clear();
_removedImages.clear();
// _link.close();
debugPrint("[[ItemImageController.uploadImages]]: Done");
} catch (e, s) {
debugPrint('[[Error in uploadImages in ItemImageController]]: $e\n$s');
}
}