uploadFiles method

Future<void> uploadFiles(
  1. String uid
)

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');
  }
}