본문 바로가기

유니티/Firebase

[ Firebase ] Storage

[ 개요 ]

[ Storage ]

공식문서 : Storage에 관하여

Firebase Storage는 사진/동영상/GIF등의 사용자 제작 콘텐츠를 저장하고 제공해야 하는 앱 개발자를 위해 만들어졌다

Firebase 저장소 API로 사용자의 파일을 클라우드에 업로드하여 다른 사용자와 공유 할 수 있다 .

 

[ 보안 ]

특정 사용자와 공유를 원한다면 Firebase Auth를 통해 사용자의 콘텐츠를 보호 할  수 있다.

모든 전송은 보안 연결로 이루어진다 .또한 Firebase API로 전송하면 안정성이 뛰어나고 연결이 끊어지더라도

자동으로 복구된다 . 이는 느리거나 잘 끊어지는 모바일 연결을 통한 파일 전송에서 필수적이다 .

 

[ 용량 ]

Goggle Cloud Storage를 기반으로 하는 Firebase저장소는 앱의 필요에 따라 페타바이트 규모로 확장되어 수십억장의

사진의 저장이 가능하다 . (용량 부족을 걱정 할 일 없다는 말) 

 

[ Unity와 함께 사용하기 ]

[ Firebase 콘솔 설정 ]

공식문서 : Unity + Storage에 관하여

=>Firebase Console에서 Storage를 클릭하여 시작한다 .

=>프로덕션 모드에서 시작

=>asia-northeast3가 서울이므로 설정해준다 .

cf ) 공식문서 : 프로젝트의 위치

=>저장소 생성이 완료되었다 .

=>상단의 Rules를 누르면 스토리지 규칙을 설정 할 수 있다 .

=>해당 규칙을 true로 하여 읽고 쓰기를 가능하게 한다. //예시에는 if request.auth!=null로 되어있음. 이건 좀 알아봐야함

다만 ,현재상태로는 누구라도 접근이 가능하기에 Firebase 백엔드에 대한 액세스를 제한하는 코드가 필요하다 . 

google-services.json / GoogleService-Info.plist의 데이터는 쉽게 검색이 가능하다.

그렇기에 이렇게 규칙이 오픈되어 있다면 누구라도 해당 데이터에 접근이 가능하다.

 

이를 위해 복잡한 보안규칙이 필요한데 가장 좋은 두가지 전략은 일반적으로 쓰기 허용을 false로 하여 대부분의 스토리지 버킷을 읽기전용으로 전환 , 사용자가 스토리지 버킷의 사용자 특정 경로에만 쓸 수 있도록 Firebase인증을 통합하는 것이다 .또한 파일크기,유형에 대한 규칙의 지정이 가능하다 . 이는 다음 비디오에서 확인이 가능하다 .

Firebase Storage 보안규칙에 관하여

 

현재는 테스트이기에 일단 true에 놓고 진행하겠다 .

 

[ 패키지 임포트 ]

=>Firebase Storage 패키지를 임포트 해준다

 

파이어베이스에는 Cloud Storage for Firebase라는 제품이 존재한다 .

이를 통해 원하는 모든 종류의 바이너리 콘텐츠를 호스팅 할 수 있다 . 

 

업로드는 3가지 단계로 이루어진다 .

첫번째 , 저장소 참조를 생성한다 .

두번째 , texture2D를 바이트로 변환한다 .

세번째 , 관련이 있다고 생각되는 메타데이터를 추가한다 .

 

[제목]

[저장소 참조]

참조는 슈퍼패스와 같다 .참조를 가져오는 것은 클라우드 스토리지 인스턴스에 아무런 영향을 미치지 않는다 .

 

수행가능한 기본작업은 데이터 업로드 / 데이터 다운로드 / 메타데이터 가져오기 또는 설정 / 데이터 삭제 등이다 .

데이터를 업로드 할 수 있기때문에 명확하지 않은 경우 참조로 표시되는 데이터베이스의 경로는 생성시 존재할 필요가 없다 .