Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
FirebaseService -> FireStoreRepository
기존에는
Firebase
관련된 로직을FirestoreService
에서 관리했습니다.작업 과정에서
RemoteStorageService
를 준수하도록 변경하는 과정에서 원하는 것은 다음과 같았습니다.FireStoreRepository
에서는 에러를 catch 후 단순 print하는 것이 아니라, 사용부로 적절한Error
를 던지게 한다.기존
Widget
모듈의 동작 과정에 문제가 생기지 않도록 한다.1. FireStoreError
Repository
에서 발생하는 에러 +Firebase
자체에서 발생하는 에러를 구분하기 위한 처리를 진행했습니다.Firebase
통신간 에러가 발생할 경우, 복잡한 에러를 처리하기보단 관련 정보를 받을 수 있도록 열거형에 추가 데이터를 선언할 수 있도록 했습니다.Test
발생하는 에러를 검증하기 위해Equatable
을 준수하기 위해 가볍게String
으로 처리했습니다. (굳이 모든 Firebase Error를 처리할 필요 없음)2. FireStoreRepository
FireStoreError
를 기반으로FireStoreService
의 로직을 참고해 코드를 수정하였습니다. 단, 현재 위젯 모듈 및View
에서FireStoreService
의 함수를 그대로 사용하고 있으므로, 신규FireStoreRepository
클래스를 새롭게 선언했습니다.주요 변경 사항
기존
FireStoreService
에서는uploadPhoto(userName:photoForSwiftData:)
호출 시Storage
에 이미지 업로드FireStore
에 사진 데이터 저장이 2가지 과정이 모두 진행이 되었다면
FireStoreRepository
에서는 해당 기능이 분리되어 독립적으로 진행됩니다.func uploadPhotoData(of:photo:imgData:) -> String
Storage
에 이미지 업로드 후urlString
을 리턴하는 함수func addPhoto(_:urlString:)
FireStore
에 사진 데이터 저장작업자의 한마디
우선 테스트 코드를 작성해보았는데, 이렇게 작성하는 게 맞나 싶네요... 나중에 고쳐야 할 듯!