Flutter ile Ortam Yönetimi | Firebase Entegrasyonu

Bertuğ Yılmaz
Doğuş Technology
Published in
2 min readNov 13, 2020

Selamlar, bir önceki yazımda anlatmış olduğum ortam yönetimi konusunu Firebase SDK entegrasyonuyla zenginleştirmek istedim. Bu yazıda dev, uat ve production ortamları için Firebase uygulamaları oluşturup Flutter uygulamamızla entegre edeceğiz.

Firebase konsoldan bir proje oluşturalım. Development, uat, production birer iOS ve android uygulama oluşturalım. Oluşturduğumuz uygulamalara ait yapılandırma dosyalarını indirelim.

pubspec.yaml dosyasının içerisine

dependencies:   
firebase_core: ^0.5.2
...

firebase plugin’i ekleyelim ve flutter pub get komutunu terminal de kullanarak Firebase plugin’imizi yükleyelim.

Firebase servislerini kullanmaya başlamadan önce initializeApp metodunu çağırmalıyız.

await Firebase.initializeApp();

InitiliazeApp metodu async ve Future<FirebaseApp> tipinde bir dönüş değeri var. Bu nedenle uygulama akışınız başlamadan önce Firebase konfigürasyonlarının doğru olduğundan emin olmalıyız.

iOS

Runner target’ının altına ekran görüntüsündeki gibi dosya düzenimizi oluşturup ilgili GoogleServices.plist dosyalarını ekleyelim.

Böyle bir hata mesajı ile karşılaşıcaksınız. Bu problem aynı isime sahip birden fazla kaynak dosyanın olmasından dolayı karşımıza çıkıyor. Runner>Build Phases> Copy Bundle Resources içerisinde bulunan iki dosyanın referansını kaldırarak bu problemi çözebiliriz 🙃

GoogleService-Info.plist dosyalarını ilgili ortam tipine göre kullanabilmek için her şemaya aşağıdaki gibi pre-action script ekleyeceğiz.

cp -r "${PROJECT_DIR}/Runner/<dosya_yolu>/GoogleService-Info.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"

Android

İlk olarak android/build.gradle içerisine

buildscript {
dependencies {
// ... other dependencies
classpath 'com.google.gms:google-services:4.3.3'
}
}

ve android/app/build.gradle içerisine

apply plugin: 'com.google.gms.google-services'

bu satırları ekleyelim.

android>app>src dosya yolu içerisinde ortam isimlerimizle klasörler oluşturup google-services.json dosyalarımızı ekleyelim.

vee android için yapmamız gereken konfigürasyonları da tamamlamış oluyoruz 🎉

Temel Firebase entegrasyonumuzu tamamladık. Analytics, Firestore vb Firebase servislerini pubspec.yaml dosyanıza ekleyerek ortam değişkenlerinize bağlı olarak projenizde kullanabilirsiniz.

Kaynaklar:

--

--

Bertuğ Yılmaz
Doğuş Technology

Sofware Engineer #iOSDeveloper 👨🏻‍💻 @trendyol