[TIL] 2021.02.04

승아·2021년 2월 3일
0

👩🏻‍💻 오늘 공부한 내용

  1. UIImage jpegData로 변환
    let image: UIImage = photoViewModel.photos[i].image 
    let data = image.jpegData(compressionQuality: 0.1)!
  1. metaData로 DataType 설정
    let metaData = StorageMetadata()
    metaData.contentType = "image/png"
  1. storage에 이미지 저장
     storage.reference().child(imageName).putData(data, metadata: metaData) { (data, err) in
         if let error = err {
            print("--> error1:\(error.localizedDescription)")
         }
      }
  1. 저장한 이미지 url 가져오기
    storage.reference().child(imageName).putData(data, metadata: metaData) { (data, err) in
        if let error = err {
            print("--> error1:\(error.localizedDescription)")
        }
        self.storage.reference().child(imageName).downloadURL { [self] (url, err) in
            print("url fetch")
            if let error = err {
                print("--> error2:\(error.localizedDescription)")
            }
            else {
                // print("--> url : \(url?.absoluteString)")
                print("---> \(i)")
                imgURL.append(url!.absoluteString)
            }
        }
    }
    
  1. 전체 코드
    var imgURL: [String] = []
    for i in 0..<photoViewModel.photos.count{
        let image: UIImage = photoViewModel.photos[i].image 
        let data = image.jpegData(compressionQuality: 0.1)!
        let timestamp: Double = Date().timeIntervalSince1970.rounded()
        let metaData = StorageMetadata()
        metaData.contentType = "image/png"
        let imageName = "\(timestamp)\(i)"
        storage.reference().child(imageName).putData(data, metadata: metaData) { (data, err) in
            if let error = err {
                print("--> error1:\(error.localizedDescription)")
            }
            self.storage.reference().child(imageName).downloadURL { [self] (url, err) in
                print("url fetch")
                if let error = err {
                    print("--> error2:\(error.localizedDescription)")
                }
                else {
                    // print("--> url : \(url?.absoluteString)")
                    print("---> \(i)")
                    imgURL.append(url!.absoluteString)
                }
            }
        }
    }

✍🏻 오늘은..

오늘 드디어 Firebase에 저장까지 해보았다. 사실 image를 어떻게 저장해야 될지 고민이 많았는데 역시 구글신이 다 알려주셨다.. 🙏🏻 감사합니다.
오늘 마주친 오류 덕분에 시간 낭비 제대로 했지만 새로운 지식을 얻었다 ^.^ 저번에도 어떤 오류 때문에 뭣 모르고 Build Active Architure Only를 Yes로 바꾼적이 있었는데 오늘 드디어 뭔지 알게되었다. 별거 아니긴 하지만 Xcode와 친해지는 느낌이들어 기분은 좋다 ㅋ
내일은 맵API를 사용해 장소 추가도 가능하도록 구현해볼 예정이다. 구글신께 또 빌어봐야겠다..

0개의 댓글