Android Firebase Storage Kullanımı

Java Kotlin Eğitimi

Merhaba arkadaşlar,
Bugün dersimizde sizlere Firebase kütüphanesi kullanarak  Firebase Cloud Storage işleminin nasıl yapılacağını anlatacağım. Firebase ile ilgili realtime database kullanımını  bu dersimizde , firebase kullanarak chat uygulaması yapımını bu dersimizde ve authentication kullanımını da bu dersimiz de ayrıntılı bir şekilde anlatmıştım. Fotoğraf veya video gibi içerikleri kolayca depolamak ve sunmak isteyen ortamlarda Android Firebase Storage özelliği kullanılır. Şimdi Android Firebase Storage adımlarını incelemeye başlayalım.

Android Firebase Storage

Diğer derslerde olduğu gibi öncelikle kullanacağımız yapıyı projemize entegre etmemiz gerekiyor. Android Studio da Firebase->Storage->Upload and download a file with Firebase Storage seçeneğini tıklayıp ; gerekli adımları izledikten sonra ilgili kütüphaneleri indirmesini bekliyoruz. En son connected ve dependencies set up correctly yazısını almamız gerekiyor. Bu işlemlerin aynılarını Firebase Realtime Database ve Authentication için de gerçekleştiriyoruz.

Uygulamamızda kullanacağımız gerekli kütüphanelerde indirdikten sonra Firebase Database ve Firebase Authentication için gerekli kütüphaneleri de projemize entegre ediyoruz. Daha önce bahsettiğim gibi bu modüllerden diğer derslerimizde ayrıntılı olarak anlattığım için bu dersimizde daha çok Firebase Storage üzerinde duracağım. Daha sonra console firebase sitesine girip kurallar kısmını kontrol ediyoruz aşağıdaki şekilde bir yapı yoksa değiştiriyoruz. Kod kısmına baktığımızda storage da sisteme yazma ve okuma işlemlerini firebase sistemine kayıtlı olan kullanıcılar için yetkilendiriyoruz.

Uygulamamızda login ve register ekranları olacak kullanıcı eğer sisteme kayıt olmadıysa register olabilecek daha sonra karşısına gelen ekranda sisteme kayıtlı olan kullanıcıların e-posta adresleri ve resimlerini görüntüleyebilecek. Ayrıca profil kısmından yine sisteme kayıtlı kullanıcılar istedikleri resmi seçip sisteme yükleyebilecekler. Firebase storage kullanmamızın nedeni; resimleri sisteme yükleyebilmek daha sonradan da çekip gösterebilmek.

Uygulamamızda ilk çalışacak olan sınıf FirstActivity kodları aşağıdadır. Kodları incelersek eğer; bu activity çalıştığında kullanıcı daha önceden sisteme kayıt olduysa otomatik olarak UserListActivity adını verdiğimiz sınıfa yönlendiriyoruz. Giriş için işlemlerini gerçekleştirdiğimiz kodlar da mevcut ayrıca kayıt yapabilmesi içinde RegisterActivity e yönlendirme yapıyoruz. Login için signInWithEmailAndPassword methodunu kullanıyoruz kullanıcıdan e-posta ve şifre alıyor daha sonra doğrulama yapıyor eğer girilen bilgilere göre kayıtlı bir kullanıcı var ise yine UserListActivity sayfasına yönlendiriyoruz.

FirstActivity.java

FirstActivity ile ilgili ekran görüntüsü aşağıdadır. Zaten uygulamanın kaynak kodlarını indirip çalıştırdığınızda daha net bir şekilde göreceksiniz ve tam olarak nasıl çalıştığını daha iyi anlayacaksınız.

Kayıt ol a tıkladığımızda RegisterActivity sayfası açılmaktadır. Kodlara baktığımızda createUserWithEmailAndPassword method kullanıcı dan e-posta ve şifre almaktadır Firebase Authentication işlemini gerçekleştirdiğimizde eğer herhangi bir sıkıntı yok ise onComplete methodunda kontrolleri yaptıktan sonra User modelimize kullanıcının e-posta adresini ve FirebaseAuth.getInstance().getCurrentUser().getUid() ile eriştiğimiz register olan her kullanıcıya özel üretilen uid değerini kaydediyoruz. Firebase Realtime Database özelliğini kullanarak da oluşturduğumuz bu User modelini veri tabanına kayıt ediyoruz.

RegisterActivity.java

RegisterActivity ile ilgili ekran görüntüsü aşağıdadır.

Register işleminden sonra realtime database kaydettiğimiz User modelleri console firebase girdiğimizde aşağıdaki gibi gözükecektir. “users” referansı altında kayıtlı olan kullanıcıları görmekteyiz.

Login veya Register olduktan sonra UserListActivity sayfamıza yönleniyoruz; ilgili kaynak kodları aşağıda yer almaktadır. Kodlara baktığımızda Firebase Database de kayıtlı olan User modellerini çekip listede gösteriyoruz. ListView yerine third party bir kütüphane olan JazzyListView kullandık animasyonu ve görselliği daha efektif olduğundan. Ayrıca bu sayfada option menuden profil kısmına bastığımızda ProfileActivity sayfasına yönleniyoruz.

UserListActivity.java

UserListActivity ile ilgili ekran görüntüsü aşağıdadır.

ProileActivity sınıfımıza baktığımızda kullanıcı telefondan istediği resmi seçip uygulamada gösteriyor daha sonra kaydet butonuna bastığımızda Firebase Storage sistemine ilgili resmi kayıt ediyoruz. Burada kayıt ederken aktif olan kullanıcın uid sine göre kayıt işlemini tamamlıyoruz çünkü her kullanıcıya ait resimler unique olmalıdır. StorageReference storageRef = fStorage.getReference().child(“users”).child(mAuth.getCurrentUser().getUid())  bu kod yardımıyla users klasörü altında storage referansını kullanıcıya özel olan uid ile oluşturuyoruz. putFile ile de seçilen resmin Uri yolunu yüklüyoruz bu sayede resmi sisteme direk olarak aktarmış olduk. İlgili resmi çekerken de yine referans adresini alıyoruz daha sonradan getDownloadUrl methodu yardımı ile sistemden resmi çekip ekranda gösteriyoruz. Aşağıdaki ekran görüntüsünde storage kısmına yüklediğimiz resimler gözükmektedir; resimleri kullanıcılar ile ilişkilendirip o şekilde yüklediğimizi unutmayalım.

ProfileActivity.java

ProfileActivity ile ilgili ekran görüntüsü aşağıdadır.

build.gradle kısmı aşağıdaki gibidir. Uygulamada resimleri görüntüleyebilmek için Picasso ve Glide kütüphanelerinden yararlandık zaten performans açısından en çok önerilen ve kullanılan kütüphaneler bunlar olduğu için kod kısımda yer almaktadır. Dilerseniz Glide ile resimleri görüntüleyin dilerseniz Picasso ile kod satırından yorum kısmını açıp kullanabilirsiniz.

build.gradle

Listemizi doldurmak için kullandığımız adapter sınıfımızda aşağıdadır.

CustomAdapter.java

Ever arkadaşlar Firebase Storage Kullanımını da sizlere anlatmaya çalıştım. Sıfırdan kendiniz bir proje oluşturup buradaki adımları uygulamanız çok daha yararlı olacaktır hem kendi Firebase sisteminizi daha net gözlemlersiniz ben kendi gmail hesabımla entegre olup kodları oluşturduğum için veritabanı kısmını göremeyeceksiniz o yüzden kendiniz bir proje oluşturup deneyin. Firebase ile ilgili bir çok ders serisi anlattım diğer dersimizde Firebase Dynamic Link konusuna başlamayı düşünüyorum.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir dahaki dersimizde görüşmek dileğiyle..

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?