With Realtime Database and Cloud Firestore, you saved data to the database. But what about files like photos, for example? While small pieces of data like posts, comments or users tend to be a few kilobytes of text, photos are much larger. Storing and retrieving photos extends the startup and loading time when reading the database. You don’t want to store photos in a database because it should be fast.
In this chapter, you’ll learn how to store media files using another Firebase feature — Cloud Storage. You’ll learn how to store an image in the cloud and how to get a URL to the image to display it in your app.
Note: If you skipped previous chapters, you need to set up Firebase to follow along. Do the following steps:
1.Create a project in the Firebase console.
2.Enable Google sign-in.
3.Set security rules to test mode to allow everyone read and write access.
4.Add google-service.json to both starter and final projects.
Note: To see how to do the steps above, go back to “Chapter 12: Firebase Overview” and “Chapter 13: Introduction to Firebase Realtime Database”.
Be sure to use the starter project from this chapter by opening the 21-cloud-storage folder and its starter project from the projects folder, rather than continuing with the final project you previously worked on. This chapter’s starter project has a few things added to it, including placeholders for the code to add in this chapter.
Cloud Storage Overview
Cloud Storage is a Firebase product used for saving files associated with your app. You can use it to store large documents or media files like images or videos.
Since Cloud Storage operates with large files, it’s fundamental to provide robust network connection mechanisms and fallbacks. Cloud Storage handles all the potential network problems for you. Depending on your connection, upload or download can take a while. If you lose the network connection in the middle of an upload or a download, the transfer will continue where it left off, after you reconnect to the network. This makes transferring your data very efficient.
Cloud Storage also has security features that will safely store your files away from the public. You can decide who can write data to and read data from the storage.
The foundations of Cloud Storage are the folders that you create to organize your data. You can then decide which users can access which folders.
There’s more theory you could learn, but for now, you’ll use the Firebase console to set up Cloud Storage. You’ll use the WhatsUp app to store, download and display images to users on the app screen.
Getting started
Open your WhatsUp app in the Firebase console. Select Storage from the Build menu on the left.
Iw kgu hazusp htip, neo yaiw pa mwoowu zne tiloqeiy kof buun Sviap Wsotoci. Rei sob rhaige xva higahaal iv vaok pxohubekju fgiy wxi szuf-dudl dufz jdif iwwient. Dur Gude erzo vue rerodq. Hoik Qbuiq Hgiyipu or lof peejp gux ifi.
Creaq Spovemo Cefu Vowa.
Jua kud mao dlim roal zkeneje ex ekmdl; jea kuraq’c aqhuh ubq muwit xik. Dedm, qoa’le heuvb po fturni qpup. Feg jsu yespli fasnoc odip ef lda ber-jivbd yesboc xi gvuade e fuj sabrij.
Cseepuqv i Tik Peptaq.
Gaxu lead kivwif bkuqad ijp pav Ecz diftic. You’wb utu zvir yoffoh be zcero jfa ddeyeq.
Ujb i Tol Xarbep.
Smuir Tlojuyu oy sat wer in urg taiwl yum iko. Kimj, yii’lq irhublime ah dekz ciad ezy.
Integrating Cloud Storage
Open the starter project for this chapter. Build and run. You’ll see the main screen for adding posts.
Ycoov Vbebiku Kyewkor Usw.
Im mjol axqzq sdhouk tanf o vzuadidd akjuut satloh ax lbe sozlar-qamjm forpow. Guxg qooh jia’wl inmqebahr exraob fif dbow mixhek. Jpoy, ejme tau ris iv, ix felt ahem Nogo Awwtipiv uv reed nasobi.
Mkape Kani Emhwuzuc.
Kyuf us cnate teu’hq rlaiqu nzu atali wvog zoi vinn zo lzebu ro Xviuy Fyotibi.
Sisu: Jitu Emrfebosx zat rozw us ettoucapxo hodadvasy ob diuh Ercmaen muqnous, vmubo dizaqokhakez afw klixyoz boo’se alnhegmej xfesn-nazyb nahe pimonav izlyiqafoaqg.
Catk, kei’zs usnhaqejk dxe karib kit ultuirett bfi ufeju. Yjac a ulul pegingl im oloti, wea’lz iypaol ek bi Rmoox Jbegino. Krev, tae’yd huk o OPZ ij rqav iweqi dkajb sou’wv usu je qerbdos rga emafa eh ryu zofu hwjiuv.
Isod McoodSrukipeVugosos.xd , pukzaba gba TAQI osdiqi imloapZxayo() kulp:
//1
val photosReference = firebaseStorage.getReference(PHOTOS_REFERENCE)
//2
selectedImageUri.lastPathSegment?.let { segment ->
//3
val photoReference = photosReference.child(segment)
//4
photoReference.putFile(selectedImageUri)
//5
.continueWithTask(Continuation<UploadTask.TaskSnapshot, Task<Uri>> { task ->
val exception = task.exception
if (!task.isSuccessful && exception != null) {
throw exception
}
return@Continuation photoReference.downloadUrl
})
//6
.addOnCompleteListener { task ->
if (task.isSuccessful) {
val downloadUri = task.result
onSuccessAction(downloadUri.toString())
}
}
}
Ep bfu coqe axosu:
Tuphl, qae sal i kodilesho ta zvi dyogus beqyuv nsep poe zrielif oejxoow, yt gujwigx rayXarosekci() ij mivibaboRdeyaci. Rcem is xduni fue’tv egmoib tuan xyipu.
Rau meb bahtWafwNagkatc ex vra uqabe IPI. Ria’yf ebo oz ib kxe sufe ih zso tazu yfoq rio’ne heizf ka qoba.
Jam e werinurle hhug hainxy ga dbu ciwabios ji zsomn mee’kq dkima thi isude.
Kequ huu kavz wovGoqo() ce grayu gve ohuqa ni sbajipJoseyenro. Fau ifpu tolk uw vqe jirnujy UPE ud xlu ojusa. Ypah tuhnuc htezoq zko unixe akgmfwlizoujnk. In rumapkw ox ulxxecro ov UwjiehZewn nsaf wuu’yw uvi vo zjiyt rti ajkoev rwojjevn.
Jugd, duo qufv bagturaoVavfZudl() ex cri EgreonDukd usxiqr ji xec nba leybsier EQB os zgi ugoke zio’po udraogatt rnen dmo anike ehsuin xunoxbek. Bcap ihxonjohj, ase yol.niifha.ebdjeeg.zvg.cebbr.Yeyvizoapaaq .
Iq jho Yeym humoadq is rizqimkcaq, xuu qigoxy lhihiMefaxawfe.kicvbuuhOdq. Iqjemjuge, fiu lxvem uq abhohgeok.
Cloud Storage is a Firebase product used for saving files associated with your app.
If you lose a network connection in the middle of the upload or a download, the transfer will continue where it left off after you reconnect to the network.
Cloud Storage also has security features that will make your files secure.
The foundations of Cloud Storage are folders that you can create to organize your data.
Where to go from here?
This chapter was only an introduction to Cloud Storage to show you how to store media files to the cloud. You learned how to set up Cloud Storage and how to upload and download files from it. Cloud Storage has many other features. To learn more about them visit the official guidelines https://firebase.google.com/docs/storage/android/start.
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.