Firebase 저장소 이미지 저장 및 검색 방법 [닫기]


268

Firebase에서 이미지를 저장하고 보는 방법은 무엇입니까?



6
어제부터 Firebase는 Firebase Storage (firebase.google.com/docs/storage)라는 새로운 기능을 출시했습니다.이를 통해 임의의 파일 (이미지, 동영상, 오디오 등)을 업로드하고 다운로드 할 수 있습니다. 페타 바이트 규모와 경쟁력있는 가격으로 Google Cloud Storage (cloud.google.com/storage)가 지원합니다. 당신은 확실히 이것을 확인해야합니다 :)
Mike McDonald

16
사용자가 유용하다고 생각하는 이유는 무엇입니까?
Amr Lotfy 2012 년

7
@TinyGiant 추천을 요구하는 것이 아니므로 왜 그렇게 닫히겠습니까? 주제에 관한 소프트웨어 서비스의 기능에 대해 묻는 것입니다.

2
나는 조기 폐쇄 의견이 싫어. 하나님의 사랑에 대한 직접적인 질문은 닫혀서는 안됩니다!
Jeryl Cook

답변:


277

업데이트 (20160519) : Firebase가 Firebase Storage 라는 새로운 기능을 출시했습니다 . 이를 통해 이미지 및 기타 비 JSON 데이터를 전용 스토리지 서비스에 업로드 할 수 있습니다. 이미지를 JSON 데이터베이스에 base64로 인코딩 된 데이터로 저장하는 대신 이미지 저장에 사용하는 것이 좋습니다.

당신은 확실히 할 수 있습니다! 이미지 크기에 따라 몇 가지 옵션이 있습니다.

1. 작은 이미지 (10mb 미만)

https://github.com/firebase/firepano에이 를 수행하는 예제 프로젝트가 있습니다.

일반적인 접근 방식은 FileReader를 사용하여 파일을 로컬로로드하여 다른 데이터와 마찬가지로 Firebase에 파일을 저장할 수 있습니다. 이미지는 이진 파일이므로 base64로 인코딩 된 내용을 가져 와서 문자열로 저장할 수 있습니다. 또는 더 편리하게 데이터 로 저장할 수 있습니다 : url 다음 img 태그의 src로 들어갈 준비가되었습니다 (이것이 예입니다)!

2. 더 큰 이미지

Firebase에는 10mb (utf8로 인코딩 된 문자열 데이터) 제한이 있습니다. 이미지가 더 큰 경우 10MB 청크로 나누어야합니다. Firebase는 멀티 메가 바이트 문자열이 아니라 자주 변경되는 작은 문자열에 더 최적화되어 있습니다. 큰 정적 데이터가 많은 경우 S3 또는 CDN을 권장합니다.


2
대단해. 파일 크기 제한이 있습니까? Firebase가 수 메가 바이트 문자열을 염두에두고 만들어 졌다고 생각하지 않습니다 ...
MasterScrat 2016 년

8
Firebase에는 10mb (utf8로 인코딩 된 문자열 데이터) 제한이 있습니다. 이미지가 더 큰 경우 10MB 청크로 나누어야합니다. Firebase는 멀티 메가 바이트 문자열이 아니라 자주 변경되는 작은 문자열에 더 최적화되어 있습니다. 큰 정적 데이터가 많은 경우 S3 또는 CDN을 권장합니다.
Michael Lehenbauer 2018 년

14
Firebase는 호스팅 시스템에 더 큰 스토리지를 추가하거나 라이브러리에 api가 내장 된 s3 인스턴스를 추가해야합니다.
The_Brink

9
@The_Brink 피드백 주셔서 감사합니다. 이것은 확실히 우리 레이더에 있습니다!
Michael Lehenbauer

4
@ezain 맞습니다. 대규모 프로덕션 사이트 (실제로 CDN 지원 이미지 제공 서비스를 원함)에는이 방법을 권장하지 않지만 많은 사용에있어 쉽고 간편합니다.
Michael Lehenbauer

25

예, Firebase에서 이미지를 저장하고 볼 수 있습니다. 파일 선택기를 사용하여 이미지 파일을 가져올 수 있습니다. 그런 다음 원하는 이미지를 호스팅 할 수 있습니다 .Amazon s3을 선호합니다. 이미지가 호스팅되면 이미지에 대해 생성 된 URL을 사용하여 이미지를 표시 할 수 있습니다.

도움이 되었기를 바랍니다.


3
이 업데이트 firbase의 문서를 체크 아웃 : firebase.google.com/docs/storage/#key_functions
루카스 Liesis에게

Amazon에서 이미지를 호스팅하려는 경우 대신 Firebase 저장소 에 이미지를 저장 하지 않겠습니까?
Ojonugwa Jude Ochalifu

19

이미지를 base64 형식으로 저장했습니다. firebase에서 다시 호출 할 때 base64 값에서 번역합니다.


1
이 방법의 유일한 문제는 이미지가 큰 경우, 활동을 통해 그들을 이동하는 응용 프로그램이 느리고 충돌 어떤 경우에는 수 있다는 것입니다
Ojonugwa 유 Ochalifu

10

또한라는 서비스를 사용할 수 있습니다 Filepicker자신의 서버와에 이미지를 저장 할 Filepicker 이미지에 URL을 제공합니다, 지금 Filestack라고합니다. URL을 Firebase에 저장할 수 있습니다.


나는 당신의 의견 에서이 서비스를 보았지만 그것에 대해 행복하지는 않았습니다.
bpolat

3

내가 Grendal2501이했던 방식을 처음으로 수행하는 몇 가지 방법이 있습니다. 그런 다음 user15163과 유사하게 이미지 URL을 firebase에 저장하고 이미지를 firebase 호스트 또는 Amazon S3에 호스팅 할 수 있습니다.


403 이미지를 삽입하고 렌더링하는 중 오류가 발생했습니다. 업로드 한 이미지에 대한 권한 문제가 있습니다. 업로드 설정 방법에 대한 정보입니다. acl : 'public-read'를 사용하려고했지만 403과 함께 업로드에 실패했습니다. 도움이 될 수있는 정보 정책 문서 및 버킷 정책은 훌륭합니다. AWS-문서가 어렵고 액세스 거부 이외의 오류가있는 디버깅 정보가 없습니다.
jamie

2
다른 질문으로 물어보십시오
Jakob Hartman

공정한 아이디어 :) 완료-스택이 다를 수 있지만-당신이 나에게 줄 수있는 자극이 있다면-환영받을 것입니다. AWS S3 오류 디버깅은 적어도 지금까지 매우 실망 스럽습니다. stackoverflow.com/questions/31998827/…
jamie

2

JSON에서 Base64 문자열을 사용하는 것은 매우 무겁습니다. 파서는 많은 양의 리프팅을해야합니다. 현재 Fresco는 Base Support Base64 만 지원합니다. Amazon Cloud 또는 Firebase Cloud에 무언가를 넣는 것이 좋습니다. 그리고 이미지를 URL로 가져옵니다. 캐싱을 위해 Picasso 또는 Glide를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.