Flutter Projemize Firebase Kitini Nasıl Ekleriz? (part 1)
Merhaba arkadaşlar bugün sizlere, Flutter projemize Firebase kitini(paketlerini) nasıl ekleyeceğimizi anlatacağım.
Flutter Projesi Oluşturma
Flutter projesi oluşturarak başlayalım Komut satırından
flutter create <proje-adı> şeklinde projemizi oluşturabiliriz.
flutter create daily_tasks
Firebase Nedir (BaaS/Backend-as-a-Service)
Firebase, geliştiricilere yüksek kaliteli uygulamalar geliştirmelerine, kullanıcı tabanlarını büyütmelerine ve daha fazla kar elde etmelerine yardımcı olacak çok sayıda araç ve hizmet sağlayan mobil ve web uygulaması geliştirme platformudur. Kısaca Firebase, geliştiricilerin daha çok uygulamanın işleyişine zaman ayırmasını sağlayıp, daha hızlı ve daha kullanışlı ürünler çıkartmasına yardımcı olur.
İlk olarak firebase konsolumuzu açıyoruz.
Yeni proje oluştur’a tıklıyoruz.
Projemizin adını girdikten sonra proje oluştur’a tıklıyoruz.
Firebase Projemize Uygulama Ekleme
Bildiğiniz gibi Flutter aynı kod ile hem Android hem iOS için uygulama çıkartabiliyor. Bu yüzden hangi platform da geliştirme yapacaksak, o platform için uygulamamızı firebase üzerinden yapılandırmamız gerekiyor.
İlk olarak Andorid icon’una basarak başlayalım.
Firebase Android Uygulama Yapılandırma
Android paket adı
içindeki applicationId’mizi Android paket adı kısmına yapıştırıyoruz.
Uygulama takma adı (isteğe bağlı)
SHA-1 imza sertifikası(isteğe bağlı)
SHA1' keyinizi almak için Komut satırımızı açıp
keytool -list -v -keystore ./.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
bu kodu girebilirsiniz. Komut satırdan gelen SHA1 : <key burada>, SHA1 anahtarımızı kopyalayıp Firebase’deki ilgili alana yapıştırıyoruz.
google-services.json dosyasını indir’e tıklıyoruz.
Dosyamızı indirdikten sonra dosya isminin google-services.json olduğundan emin oluyoruz, bazen birkaç kez indirdiğimizde dosya isminin sonuna (1),(2) gibi eklemeler geliyor eğer öyle olursa gelen eklemeleri dosya isminden silmeliyiz.
Daha sonra yukarıdaki görselde gördüğünüz gibi, indirdiğimiz dosyamızı FlutterProjemiz/android/app in içine atıyoruz.
Eklediğimiz google-services.json dosyasını FlutterProjemiz/android/build.gradle ın içinde belirmek için dependencies kısmına alttaki kodu ekliyoruz.
Ekledikten sonra android/build.gradle:
Son olarak android/app/build.gradle dosyasının en altındaki dependencies kısmına alttaki kodu ekliyoruz.
Bu eklemeyi yaptıktan sonra firebase’in android için olan yapılandırmasını bitirmiş bulunuyoruz.
Firebase iOS Uygulama Yapılandırma
Firebase projeniz de iOS uygulamanızı yapılandırmanız için Xcode gerekiyor, bende bulunmadığından bu adımları anlatamıyorum ama Configure an iOS app ‘ ten detaylı bir şekilde adımları takip edebilirsiniz.
Şimdi Sıra Geldi Flutter Projemize Firebase Paketlerini Eklemeye
Flutter’da hangi firebase paketlerinin olduğunu görmek için FlutterFire plugins sayfasını ziyaret edebilirsiniz.
İlk önce firebase_core paketini eklememiz gerekiyor çünkü diğer FlutterFire paketleri firebase_core paketine bağlı. FlutterProjemizin içindeki pubspec.yaml dosyamızı aşağıdaki gibi düzenliyoruz.
sdk: flutter  firebase_core: any
Düzenledikten sonra flutter packages get ile paketlerimizi projemiz için yerele getiriyoruz. Tabi bu paketlerin bazıları AndroidX ‘ e migration gerektiriyor.
FlutterFire paketlerinin son versiyonlarını kullanmak için Android projenizi AndroidX’e geçirmeniz gerekiyor bunuda, Android Studio 3.2 ve üstündeki bi versiyona sahipseniz kolayca yapabiliyorsunuz.
Öncelikle FlutterProjemiz/android konumunu
Android studio’dan File->Open.. ile açıyoruz.
Açtıktan sonra Refactor-> Migrate to AndroidX… e tıklıyoruz.(Size projenizin yedeği oluşsun mu diye soruyor size kalmış.)
Önümüze Refactoring Preview ekranı geliyor Do Refactor’e basarak projemizin AndroidX’e geçişini hallediyoruz.
Son olarak android/app/build.gradle dosyasındaki defaultConfig kısmına alttaki satırı ekliyoruz.
// alttaki satırı ekliyoruz
Bu adımları tamamladıktan sonra FlutterFire paketlerini rahatlıkla import edip kullanabilir duruma geliyoruz, diğer yazılarımda adım adım bunları da anlatacağım takipte kalın! :)
Sormak istediğiniz bir şey varsa twitter @CipliOnat veya Linkedin üzerinden iletişime geçebilirsiniz.