Flutter Firebase Remote Config

4 min readMar 25, 2025

Merhaba, uzun bir aradan sonra Flutter firebase remote config adlı yazımla sizlerleyim. Bu yazımla birlikte sizlere remote config nedir, ne işe yarar nasıl kullanabiliriz onu anlatmaya çalışacağım. Şimdiden keyifli okumalar dilerim.

Firebase Remote Config Nedir?

Firebase Remote Config, uygulamanızın davranışını ve görünümünü, uygulamanızı Google Play Store veya App Store’da yeniden yayınlamanıza gerek kalmadan, dinamik olarak değiştirmenizi sağlayan bir bulut hizmetidir. Uygulamanızda tanımladığınız parametrelerin değerlerini Firebase konsolu üzerinden uzaktan kontrol edebilirsiniz.

Firebase Remote Config Ne için Kullanılır?

  • Uygulama mağazalarına güncelleme göndermeden çeşitli değişiklikler yapma
  • Yeni özellikleri kontrollü bir şekilde dağıtabilme (önce küçük bir kullanıcı grubuna, sonra tüm kullanıcılara sunma).
  • Özellikleri belirli yüzdelerde kullanıcılara dağıtarak sorunları önceden tespit edebilme gibi gibi nedenlerden dolayı kullanılır.

Şimdi gelin hep birlikte Flutter Firebase Remote Config örneği yaparak bu özelliği daha yakından inceleyelim.
Yapacağımız örnekte bir metinsel ifadeyi değiştirmeyi, açık ve koyu tema arasında geçişi ve son olarak aktif olduğunda premium özellik aktif yazan bir metnin görünür olmasını sağlayacağız.

Uygulamaya Hazırlık

Firebase Remote Config Oluşturma

Uygulamaya geçmeden önce Firebase Console üzerinden bir proje oluşturmanız gerekmekte. Oluşturduğunuz projeyi Firebase Cli kullanarak Flutter projenizde aktif hale getirmeniz gerekmekte. Firebase Cli hakkında daha fazla detay için burayı okuyun lütfen!

Proje oluşturduktan sonra Run sekmesinden Remote Config seçeneğini bulun

Daha sonrasında karşınıza gelen ekrandan Create Configuration butonuna basmanız gerekiyor.

Karşınıza gelen ekranda sizden parametre adı ve parametre değerini girmenizi isteyecektir. Ben parametre adı welcome_message, parametre tipi String ve değeride Uygulamama hoş geldiniz olan bir parametre oluşturdum.

Yine aynı ekrandan yeni parametreler ekliyorum. Bu parametrelerde şu şekilde;

Parametre adı: theme
Parametre değeri: light
Parametre tipi: String

Parametre adı: premium
Parametre değeri: false
Parametre tipi: boolean

Bir sonraki aşamada eklediğimiz bu parametreleri publish edip yayına almamız gerekiyor. Böylelikle parametlerimize ve yaptığımız değişikliklere erişebiliyor olacağız. Publish Changes seçeneğine basıyoruz ve karşımıza gelen uyarıyıda onaylayıp işlemi bitiriyoruz

Flutter Firebase Remote Config Kullanımı

Bu aşamada Firebase Console üzerinden oluşturduğumuz ve FirebaseCli ile bağlantısını yaptığımız projemizde Firebase Remote Config kullanımı göreceğiz.

Pubspec yml dosyamıza en güncel versiyonlarını baz alarak firebase_core ve firebase_remote_config paketlerini eklememiz gerekiyor.

Kafa karışıklığı yaratmaması adına herhangi bir state management paketi kullanmayacağım. Ancak sizler projenize veya temiz kod yazımı prensiplere uygun olarak yapabilirsiniz.

İlgili paketleri ekledikten sonra main.dart dosyamızı açıyoruz ve main fonksiyonu içinde firebase servisini başlatıyoruz. Endişelenmeyin kodları yazımın sonunda sizlerle paylaşıyor olacağım!

Main bloğumuzun son hali bu şekilde. Şimdi MyApp adında Stateful Widget oluşturacağız.
Oluşturduktan sonra Firebase Remote Config üzerinde oluşturduğumuz parametreleri aktaracağımız değişkenler oluşturmamız gerekiyor.

Bu parametreleri oluşturduktan sonra remote config değerlerimizi çekeceğimiz fonksiyonu yazacağız. Bu sayede gelen parametreleri oluşturduğumuz değişkenlere aktararak yaptığımız değişiklikleri görüntülüyor olacağız.

İlgili fonksiyonumuz bu şekilde ama kısaca açıklayacağım yerler var.
RemoteConfigSettings içindeki fetchTimeout ve minimumFetchInterval parametreleri, Firebase Remote Config’in istemci tarafındaki (yani, Flutter uygulamanızdaki) davranışını kontrol eden önemli ayarlardır. Bu parametreler, uygulamanızın Remote Config sunucularıyla nasıl etkileşim kuracağını ve verileri ne sıklıkla güncelleyeceğini belirler.

fetchTimeout, uygulamanızın Firebase Remote Config sunucularından veri çekmeye çalışırken bekleyeceği maksimum süreyi (saniye cinsinden) belirtir. Yani, Remote Config’den veri almak için yapılan bir istek (örneğin, fetchAndActivate() çağrısı) bu süre içinde tamamlanmazsa, bir zaman aşımı hatası (timeout error) oluşur. Bu yüzden çok kısa ya da çok uzun değerler girilmemeli.

minimumFetchInterval, uygulamanızın Firebase Remote Config sunucularından ne sıklıkla yeni veri çekmeye çalışacağını belirler. Başka bir deyişle, iki fetchAndActivate() çağrısı arasında geçmesi gereken minimum süreyi (saniye, dakika, saat vb. cinsinden) tanımlar.
Buradaki değeri 0 olarak kullanmamızın nedeni yapılan değişiklikleri hemen görebilmek için. Ancak sizler bu değeri uygun bir değer olarak uygulamalısınız çünkü düşük değerler uygulamanın büyük oranda pil ve ağ kullanımı yapmasına neden olabilir.

Uygulamamıza ait diğer kodlarda bu şekilde.

https://gist.github.com/abdullah017/a9a282e4f8c12bc5188404436b8e9b32

Uygulamamızı çalıştırdığımızda bizi bu şekilde bir ekran karşılıyor olacak.

İlgili değerleri Remote Config üzerinden güncelliyorum. Daha sonra yenile butonuna basıyorum ve ilgili değişiklikler uygulamaya yansıyor.

İşte Flutter Firebase Remote Config işlemleri bu kadar kolay. Elimden geldiğince bu konu hakkında sizleri bilgilendirmeye çalıştım. Umarım ilgilisi için faydalı olur.

Yeni yazılarda görüşmek üzere.

Github: www.github.com/abdullah017
Linkedin:
www.linkedin.com/in/abdullahtas
Stackoverflow:
https://stackoverflow.com/users/13807726/abdullah-t

--

--

AbdullahTaş
AbdullahTaş

Written by AbdullahTaş

FLUTTER DEVELOPER || GRAPHQL - FIREBASE

No responses yet