Flutter’a Firebase Entegrasyonu ve Temel İşlemler 0: Bilgi ve Kurulum

Barış Kodaş
Flutter Students Club
5 min readJan 3, 2022

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.

Organization name kısmını bir yere not edelim, Firebase kurulumu yaparken lazım olacak.

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.

projenize istediğiniz adı verebilirsiniz.

ve projemiz hazır.

Firebase Android Kurulumu

1. adım

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

SHA-1 anahtarımız

Eğer bir problem varsa bu sayfaya bakabilirsiniz.

Dosyayı indirip android/app klasörüne atıyoruz.
Buradaki kodları mutlaka projenize eksiksiz ekleyin, çok sorun çıkarabiliyor.

Olası hata: minSdk hatası alırsanız bu şekilde çözebilirsiniz:

android/app/build.gradle dosyasını şu şekilde düzenleyin:

iOS Kurulumu:

Tıklayın ve iOS seçin.
Uygulamanız App Store’da değil ise 3. kısmı boş geçiniz.
dosyayı indirin.
Ardından ios klasörüne gelip sağ tıklayın ve uygulamanızı xCode da açın. ## Eğer bunu yapamadıysanız uygulamanın klasörüne girip ios/Runner.xcodeproj dosyasını açın.
Runner sağ tık + Add Files to Runner
GoogleService-Info.plist dosyasını ekleyin

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.

Paketlerimiz başarıyla kuruldu.

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

ve artık hazırız, uygulamamızı derleyelim!

--

--