Şimdi ilk başlayanlar için Firebase nedirden girersek; Firebase, mobil ve web uygulamaları yapılandırabileceğiniz, data okuyan, authentication methodları tanımlayabileceğiniz ve datanız için güvenlik ve izinleri konfigüre edebileceğimiz bir platformdur. Firebase’in en güzel tarafı backendi çok fazla geliştirme yapmadan sağladığı destekle yapabiliyor olmamız. Bu yazıda Firebase’i manual olarak projemize nasıl ekleyebileceğimizi anlatacağım.
Öncelikle, https://firebase.google.com/’dan firebase’in free accountuna login olmanız gerekmektedir. Sitedeki olanakları inceleyebilirsiniz ancak free account’da da çok fazla ek olanak sağlandığı için en azından başlangıç için free accountla devam edilebilir. Ardından create new project seçeneğiyle ilerleyerek backend ini Firebase’de tutmak istediğimiz uygulamayı create edebiliriz.
Buradan hangi platform için Firebase’i kullanmak istiyorsak onu seçip ilerliyoruz. Biz bu örnekte Android’le ilerleyeceğiz. Androidi seçtiğimizde aşağıdaki gibi ekranla karşılaşıyor olacağız. Burada package name, app name gibi değerler kendi girebileceğimiz, uygulamaya verdiğimiz olmakla beraber Debug signing certificate’i nasıl alacağınızı bilmiyorsanız bir sonraki imajdaki gibi uygulama seçilip ardından Gradle dosyası seçilir, refresh etme seçilir. İmajda da görüldüğü gibi app, tasks, android altındaki signing report çift tıklanmalıdır. Run sekmesinde toogle tasks executions/text mode’a tıklanırsa ilgili outputu görüyor oluruz.
Burdan aldığımız değeri Firebase console’da girdiğimizde aşağıdaki 2. ekranla karşılaşıyor olacağız.
Aynen yukarıdaki imajda gösterildiği gibi project görünümüne geçip ardından bir önceki işlemde oluşup otomatikman download olan google-services.json dosyasını app altında bırakmalıyız. Ardından da yine aşağıdaki imajda belirttiği gibi app level ve project level olmak üzere farklı düzeylere gradle için ekleme yapıyoruz.
Gradle sync işleminde “Failed to resolve: com.google.firebase:firebase-core:9.0.0” gibi bir hata alırsanız aslında bu Google Play Services’i SDK manager’dan update etmeniz gerektiği anlamına gelmektedir. Google Play Services 9.0 Release notlarında da olduğu gibi Firebase 9.0.0 Google Play Service 9.0 kullanılarak yapılandırılmıştır ve artık com.google.firebase:* altında yer almaktadır.
Böylece Firebase’i projemize bağlamış olduk. Tabi Firebase online çalışan bir database olduğu için bir sonraki step olarak Manifest dosyasında Internet permission’ınını eklememiz gerekmekte.
<uses-permission android:name=”android.permission.INTERNET”</uses-permission>
Tamam şimdi gradle’a Firebase’i ekledik. Aynı zamanda Manifest dosyasına da Internet iznini ekledik. Bir sonraki adım Firebase’i uygulamamızda initalize etmek olacak. Bunu application class’ında yapmamız gerekmekte. Bu sebeple bir util package’ı oluşturup altında uygulamamızın adı + “Application” formationda Application’dan extend eden bir class oluşturabiliriz. Application class’ı normalde uygulama genelinde initialize etmemiz gereken birşey varsa kullanılır. Bu sebeple Firebase için gayet uygundur. Tabi Custom Application class’ımızı Manifest’de tanımlamayı da unutmayalım.
@Override public void onCreate() { super.onCreate(); Firebase.setAndroidContext(this); }
Yukarıda görüldüğü gibi, Application class’ın içerisinde setAndroidContext methodunu çağırarak, Firebase’i register etmiş oluyoruz. Tabi bunu Activity’de de yapabilirdik. Ancak bu şekilde yaptığımızda ilgili methodun çağrılacağından 100% emin olmuş oluyoruz.
Sonrasında ise Firebase url’ini eklememiz gerekmekte. Bunu direk bir constant class’ı içerisine yazabileceğimiz gibi, kodu birden çok firebase backend’i kullanacağımız varsayımında gradle.properties dosyasına önce aşağıdaki gibi ekleyip;
UniqueFirebaseRoolUrl="https://fir-firstproject-6c1ce.firebaseio.com/"
Ardından, bunu ilgili modülün altındaki build.gradle dosyasına ekleyip;
buildTypes.each { it.buildConfigField 'String', 'UNIQUE_FIREBASE_ROOT_URL', UniqueFirebaseRoolUrl }
Constant class’ında buradaki değişken(UNIQUE_FIREBASE_ROOT_URL) yardımıyla ulaşmak daha doğru olabilir.
Artık herşey hazır olduğuna göre yapabildiğimiz en basit şeyi yapıp, yani Firebase’deki database’imizi bir data ekleyip Firebase entegrasyonunu tamamlayabiliriz. Ekleme yapmadan öncesinde, firebase console’dan baktığınızda hiç bir datanın olmadığını göreceksiniz.
Activity’imizin layoutuna basitçe bir floating action button ekleyip, buraya tıkladığında herhangi birşey eklemesini tetikleyebiliriz. Tabi bunun için küçük bir dipnot gradle dosyasında design support library’nin ekli olması gerekmekte.
compile 'com.android.support:design:23.4.0'
<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:drawable/btn_plus" android:layout_gravity="bottom|right" android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginBottom="@dimen/activity_vertical_margin"/>
Firebase ref = new Firebase(FirstFirebaseAppConstant.FIREBASE_URL); ref.child("test").setValue("Elif");
Böylece FireBase’le tanışmış olduk. Sonraki yazılarda daha detaylı olarak inceleyeceğiz. İyi pazarlar 🙂
Referanslar:
https://firebase.google.com/docs/android/setup#manually_add_firebase
Merhabalar,
Firebase url’ e erişmek için neden linki direk yazmak yerine gradle propertieste tanıplayıp oradan eriştiniz acaba? Güvenlik için midir, başka projelerde api linklerini bu şekilde saklayabilir miyiz?
Sonraki yazılarınızı bekliyorum:) Teşekkürler 🙂
Merhaba,
Yazıda da belirttiğim ve Google’ın kaynaklarında önerdiği gibi tamamen ortam kullanım ihtiyacına karşı. Başka bir yerde de tanımlanabilirdi.
İyi çalışmalar.
Kolay gelsin yeni bir öğrenciyim ,firebese autocation büyük uygulamalarda kullanıyor mu.Yoksa kendilerimi geliştiriyorlar benzerini.
Kendimiz geliştirirsek bir uygulamanın firebase ına entekre edebilirmiyiz ?