Android에서 Cloud Storage 시작하기 | Cloud Storage for Firebase
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Android에서 Cloud Storage 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Cloud Storage
firebase.google.com
Firebase Cloud Storage는 문서, 사진 등의 콘텐츠를 저장할 수 있는 객체이다. 이미지를 업로드하고 다운로드할 수도 있고, 앱을 사용하는 중에 특정 시점의 로그가 필요한 경우 파일 형태로 만들어서 확인해 볼 수도 있다.
Firebase 설정
Cluad Storage를 설정하는 부분에서 allow read, write: if false로 설정하게 되면 설명란에 적힌 대로 모든 타사 읽기 및 쓰기가 거부된다. 외부에서의 접근을 허용하려면 이 부분을 변경해야 한다.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true
}
}
}
위와 같이 변경하면 외부에서의 접근이 허용된다. 추후 변경이 필요할 경우 Storage의 규칙 란에서 변경이 가능하다.
기본 버킷 생성 중 데이터를 저장하기 위해 Cloud Storage 위치를 설정하는 항목이 나온다.
위치 정보와 관련해서는 아래에서 확인할 수 있는데, asia-northeast3가 서울 서버라고 한다.
Cloud Firestore 위치 | Firebase
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Cloud Firestore 위치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Cloud Firestore 인스턴스를
firebase.google.com
Storage에 파일 업로드 하기
Gradle에 Cloud Storage 라이브러리 종속 항목 추가
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.5.1"))
implementation("com.google.firebase:firebase-storage")
}
※ firebase-bom은 Firebasae 라이브러리 종속 항목들을 항상 호환되는 버전으로 맞춰준다.
FirebaseStorage 인스턴스 생성
object Firebase {
val firebaseStorageRef = Firebase.storage.reference
}
FirebaseStorage를 사용하려면 인스턴스를 생성해야 한다. Firebasae.storage를 Cloud Storage 버킷에 접근한다. 이후 Storage를 사용할 수 있다. 인스턴스 생성 후 Storage를 사용할 수 있게 되었지만 Storage에 접근하여 파일을 업로드하거나 다운로드 등을 하려면 참조가 필요하다. reference(getReference())를 호출하여 참조를 만든다.
파일 업로드하기
viewModel.logFile.observe(viewLifecycleOwner) {
if(it == null) return@observe
try {
file = it
filePath = "logs/${getCurrentToday()}/${file?.name}"
Firebase.firebaseReference
.child(filePath)
.putFile(Uri.fromFile(file))
.addOnProgressListener {
Toast.makeText(requireContext(), "로그 전송 중...", Toast.LENGTH_SHORT).show()
}
.addOnCompleteListener {
Toast.makeText(requireContext(), "로그 전송 완료", Toast.LENGTH_SHORT).show()
}
.addOnFailureListener {
Toast.makeText(requireContext(), "로그 전송 실패", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
// 전송할 파일이 없는 경우
if (e.cause == null && e.message == "file") {
Toast.makeText(requireContext(), "전송할 로그가 없음.", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(requireContext(), "로그 전송 실패", Toast.LENGTH_SHORT).show()
}
}
}
putFile() 메서드를 사용하면 사진, 영상 등의 로컬 파일을 업로드할 수 있다. putFile은 UploadTask를 반환하는데, UploadTask는 업로드를 관리하고 그 상태를 모니터링할 수 있다. UploadTask의 함수를 사용하여 로딩, 실패, 완료 처리를 해 보았다.
이외 업로드 관련 내용은 아래에서 확인할 수 있다.
Android에서 Cloud Storage로 파일 업로드 | Cloud Storage for Firebase
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Android에서 Cloud Storage로 파일 업로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Cloud S
firebase.google.com
댓글