FirebaseStorage 이미지를 SDWebImage로 가득 채우려면

카탈로그

  • 자기소개
  • 최근 제작된 어플리케이션 Lily
  • Firebase Storage의 Tips
  • 요약
  • 자기소개

  • 근육 엔지니어로서 스파잼으로 두각을 표시
  • JX통신사는 NewsDigest라는 뉴스 응용 프로그램을 제작하고 있다
  • 개인도 응용 프로그램을 할 줄 안다

  • 최근에 만든 응용 프로그램(개인)


    다이어트 영상 계속 할 수 있어요!습관 어플리케이션 - Lily



    Firebase


    Firebase를 사용하는 이유

  • 개인 개발 mBaas이기 때문에
  • Realtime Database Firebase
  • Cloud Function으로 알림을 보낼 수 있을 것 같아서 Firebase
  • 하지만 이미지 처리가 막혀서...


    자주 하는 이미지 처리

    imageView.sd_setImage(with: thumbnailUrl)
    

    Firebase Storage는 이 정도까지는 할 수 없습니다.


    원인

  • 파일 다운로드 URL만 알고 있음
  • Firebase Console




    URL 다운로드를 클릭하면



    jpg 파일을 다운로드했습니다.
    참고로 이 URL을 SDWebImage 이하thumbnailUrl로 설정해도 이미지가 표시되지 않습니다.
    imageView.sd_setImage(with: thumbnailUrl)
    
    사람
    > SDWebImage를 사용할 수 없음 <
     ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

    하지만 FirebaseUI가 있습니다.


    FirebaseUI


  • cocoapods
  • pod 'Firebase/Storage'
    pod 'FirebaseUI/Storage'
    
    import Firebase
    import FirebaseStorage
    
    static func setImage(uid: String, imageView: UIImageView?){
            let storageRef = Storage.storage().reference()
            let ref = storageRef.child("profile/\(uid).jpg")
            imageView?.sd_setImage(with: ref, placeholderImage: nil)
        }
    
  • SDWebImage가 확장되고 FirebaseStorage 참조를 매개 변수로 사용하면 좋습니다
  • imageView?.sd_setImage(with: ref, placeholderImage: nil)
    

    여기까지의 총결산

  • SDWebImage 로컬이기 때문에 이미지 처리 방법은 저밖에 없습니다
  • FirebaseStorage의 경우 파일을 다운로드한 URL만 있기 때문에 캐시를 잘 하는 것은 불가능하다고 생각한다
  • FirebaseUI라는 라이브러리가 큰 도움이 되었다
  • 추적 (여기서 긴급 전개)


    트위터의 모습


    Firebase Storage, 접근 허가 주변을public로 설정하면 파마 링크가 느껴진다#potatotips-🙌🐼평평했어🐼🙌 (@hiragram) 2017년 8월 28일
    Firebase Storage에 업로드된 이미지를 쉽게 얻지 못하면 자신의 응용 프로그램에서'public도 되잖아'라는 결론을 얻어 Firebase Storage의 설정 자체를 바꾸면 w가 쉽게 이길 수 있다.#potatotips — tsuyoyo (@tsuyogoro) 2017년 8월 28일

    뭐해!?


    download URL 아닙니다. 안 됩니다.


    원인

  • 파일 유형은 application/octet-stream

  • 이 경우 다운로드 URL이 날아오르면 알 수 있지만 파일을 다운로드할 수 있습니다.
    → 이image/jpeg인 경우 다운로드 URL은 SDWebImage에서 사용할 수 있는 형식이 됩니다.

    업로드 시 Tips


    올릴 때 할 일이 있어요!

    meta.contentType 지정

    let ref = storageRef.child(key)
    let meta = StorageMetadata()
    meta.contentType = "image/jpeg" // <- これ!!
    ref.putData(data, metadata: meta) { metadata, error in
        metadata!.downloadURL()! // このURL
    }
    
    유형이 image/jpeg인 경우 Firebase 스토리지 콘솔에 다음과 같은 내용이 표시됩니다.여기서도 초상화가 보여요!

    링크를 누르면 다운로드되지 않고 브라우저에서 바로 볼 수 있습니다.

    그래서


    브라우저에서 URL을 클릭해도 볼 수 있습니다!
    이렇게 하면 SDWebImage에 URL을 설정하여 평소와 같이 그림을 보았습니다!
    시정해 주셔서 감사합니다.Tips를 얻었습니다!

    결론

  • FirebaseUI를 사용하여 Ref로 이미지를 표시할 수 있음
  • SDWebImage 디스플레이를 평소와 같이 사용할 수도 있습니다. 업로드 시 지정을 주의하세요
  • 만약 알고 있다면, 나는 후자가 더욱 간단하다고 생각한다.

    좋은 웹페이지 즐겨찾기