Flutter’a Firebase Entegrasyonu ve Temel İşlemler 0: Bilgi ve Kurulum
Herkese merhaba,
Bu makale serisinde biz mobil geliştiricilerin işlerini kolaylaştıran, kıymetli dostumuz Firebase ve Firebase servislerini Flutter ile nasıl kullanıyoruz, avantajları nelerdir, bunlardan bahsedeceğiz.
Firebase nedir, avantajları nelerdir?
Aslında bu makaleyi okuduğunuz için çok yüksek olasılıkla bu konuya ilişkin temel bir fikriniz var demektir ama biz yine de bahsedelim.
Eğer interaktif kullanıcı etkileşimli, internete bağlanan, kullanıcı verilerini bulutta tutan, kullanıcılarınıza anlık bildirimler gönderebildiğiniz bir mobil uygulama geliştirmek istiyorsanız bir server(sunucu)’nuz ve back-end(arka plan) servisleriniz olmalıdır. Örneğin bir sosyal medya uygulamasını ele alalım, kullanıcı herhangi bir metin, fotoğraf, video paylaştığında bunu bir servis aracılığıyla sunucuya gönderir, veritabanına kaydedilir ve diğer kullanıcılara gösterilir. Burada olan temel şey veri alışverişidir ve bu veri alışverişleri back-end servisler ile yaparız. İşte Firebase tam bu noktada devreye giriyor. Ekstradan herhangi bir back-end programlama dili bilmenize gerek kalmadan ve bir sunucu kiralamadan, Firebase saniyeler içerisinde sizin yerinize bu servisleri oluşturuyor ve uygulamanız interaktif bir hale geliyor. En büyük avantajlarından biri ise belirli sınırlara kadar ücretsiz olması, “belirli sınırlara kadar” cümlesi gözünüzü korkutmasın, uygulamanız tatmin edici gelir ve kulanıcı sayısı elde etmeye başlayana kadar ücret ödemiyorsunuz. Detayları buradan inceleyebilirsiniz.
Firebase servisleri nelerdir?
Pek detaylandırmadan basitçe servislerin ne işe yaradığını açıklayıp geçeceğim çünkü makale serimizde hepsini daha detaylı biçimde ele alacağız.
- Authentication: Kullanıcı kimlik doğrulama sistemi.
- Realtime Database: Adından da anlaşılacağı üzere gerçek zamanlı bir veritabanı.
- Cloud Firestore: Gerçek zamanlı veritabanı. (Realtime Database’in daha gelişmiş ve performanslı bir versiyonu)
- Cloud Storage: Fotoğraf, video, ses, PDF vb. pek çok dosya formatını destekleyen ve tutan veritabanı.
- Hosting: Adından da anlaşılacağı üzere size bir alan adı sağlıyor.
(örn: bariskodas.firebaseapp.com gibi) - Cloud Messaging: Mesaj servisi. (Bildirim altyapısı)
- Dynamic Links: Uygulamanız için dinamik linkler üretir.
(Örneğin siz mobil tarayıcınızda bir sayfayı görüntülerken sayfada “uygulamada aç” butonu belirir, bastığınızda size uygulamada aynı içeriği gösterir. Bu servisi şimdilik kısaca böyle açıklayabiliriz)
Kurulum:
Firebase devamlı güncellendiği için kurulum biçimi de güncellenebiliyor ve yeni başlayan birisi pek çok problemle karşılaşabiliyor, bu yüzden güncel kurulumunu sizlerle paylaşmak istedim. Birlikte önce manuel daha sonra ise otomatik kurulumu yapacağız.
Hazır olduğumuza göre, ilk makalemiz Authentication servisi için Android Studio üzerinden bir Flutter projesi oluşturup Firebase entegrasyonuna başlayalım.
Bir Firebase projesi oluşturalım
console.firebase.google.com adresine gidip girş yaptıktan sonra “Add Project” butonundan bir Firebase projesi oluşturalım. Görselleri ve alt kısımdaki bilgi notlarını takip ederek devam ediniz.
ve projemiz hazır.
Firebase Android Kurulumu
App nickname kısmına istediğiniz adı verebilirsiniz.
Son olarak uygulamamızın SHA-1 anahtarını istiyor, SHA-1 anahtarı cihazdaki biyometrik verileri tutan ve eşleşen bir anahtar, uygulamanızda eğer biyometrik okuycular(parmak izi okuyucu vs. gibi) yoksa bu adımı atlayabilirsiniz.
SHA-1 anahtarını almak için Android Studio veya VS Code’da terminale gelip komut çalıştırmamız gerekiyor.
MacOS / Linux için çalıştıralacak komut:
keytool -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore
Windows için:
keytool -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
Şifre: android
Eğer bir problem varsa bu sayfaya bakabilirsiniz.
Olası hata: minSdk hatası alırsanız bu şekilde çözebilirsiniz:
android/app/build.gradle dosyasını şu şekilde düzenleyin:
iOS Kurulumu:
sonraki adımların tamamına hiçbir şey yapmadan Next yaparak geçin.
ardından pub.dev adresinden firebase_core , firebase_auth , google_sign_in paketlerini ekleyin.
Bizim için projemizi otomatik konfigüre edecek olan FlutterFire CLI aracını kuralım:
Terminalden komutu çalıştıralım:
$ dart pub global activate flutterfire_cli
Bir uyarı aldık. Kırmızı ile belirttiğim yeri kopyala yapıştır yapıp çalıştıralım.
Ardından şu komutu çalıştıralım:
$ flutterfire configure
Firebase projelerinize erişmek için Google hesabınızla oturum açmanız gerekiyor, açtıktan sonra karşınıza firebase projeleriniz gelecek:
Ok tuşları ile projenizi seçip enter tuşuna basın. Ardından hangi platformlar entegre edilecekse onları seçin. ok tuşları ve space tuşuna basarak seçim yaptıktan sonra enter tuşuna basın.
bi sonraki adımda not ettiğimiz iOS Bundle ID isteyecek onu da girip enter yapalım.
son adım: paketlerimizi import edip uygulamamızın main() fonksiyonunu aşağıdaki şekilde düzenliyoruz.
Olası Hata: iOS derlenirken pod hatası alırsanız şu şekilde çözebilirsiniz:
ios/Podfile dosyasını açın
ve şu şekilde düzenleyin
ardından Terminale gelip sırasıyla şu komutları girin:
$ cd ios$ pod install