Uygulamanızda parametreler tanımlamak ve bulutta değerlerini güncellemek için Firebase Remote Config'i kullanabilirsiniz. Böylece, uygulama güncellemesi dağıtmadan uygulamanızın görünümünü ve davranışını değiştirebilirsiniz. Bu kılavuzda, başlangıç adımlarında size yol gösterilmekte ve bazı örnek kodlar sunulmaktadır.
1. adım: Firebase ve Remote Config SDK'sını uygulamanıza ekleyin
Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyip başlatın.
Remote Config için, uygulama örneklerinin kullanıcı özelliklerine ve kitlelere koşullu olarak hedeflenmesi amacıyla Google Analytics gereklidir. Projenizde Google Analytics'i etkinleştirdiğinizden emin olun.
Remote Config eklentisini yüklemek için Flutter projenizin kök dizininden aşağıdaki komutu çalıştırın:
flutter pub add firebase_remote_config
Ayrıca, Remote Config'i ayarlama kapsamında uygulamanıza Google Analytics için Firebase SDK'sını da eklemeniz gerekir:
flutter pub add firebase_analytics
Projenizi yeniden oluşturun:
flutter run
macOS'te Remote Config kullanıyorsanız Xcode'da Anahtar Zinciri Paylaşımı'nı etkinleştirin.
2. Adım: Remote Config singleton nesnesini alın
Remote Config nesne örneği oluşturun ve yenileme işleminin sık sık gerçekleşmesi için minimum getirme aralığını ayarlayın:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
Tekil nesne, uygulama içi varsayılan parametre değerlerini depolamak, arka uçtan güncellenmiş parametre değerlerini almak ve alınan değerlerin uygulamanıza ne zaman sunulacağını kontrol etmek için kullanılır.
Geliştirme sırasında, minimum getirme aralığını nispeten düşük bir değere ayarlamak önerilir. Daha fazla bilgi için Düşük hızlandırma bölümüne bakın.
3. Adım: Uygulama içi varsayılan parametre değerlerini ayarlayın
Uygulamanızın Remote Config arka ucuna bağlanmadan önce istenen şekilde davranması ve arka uçta ayarlanmamışsa varsayılan değerlerin kullanılabilmesi için Remote Config nesnesinde uygulama içi varsayılan parametre değerleri ayarlayabilirsiniz.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
4. adım: Uygulamanızda kullanılacak parametre değerlerini alın
Artık Remote Config nesnesinden parametre değerleri alabilirsiniz. Arka uçta ayarladığınız, aldığınız ve etkinleştirdiğiniz değerler uygulamanızda kullanılabilir. Aksi takdirde, setDefaults()
kullanılarak yapılandırılan uygulama içi parametre değerlerini alırsınız.
Bu değerleri almak için, uygulamanızın beklediği veri türüyle eşleşen ve parametre anahtarını bağımsız değişken olarak sağlayan aşağıda listelenen yöntemi çağırın:
getBool()
getDouble()
getInt()
getString()
5. adım: Remote Config arka ucunda parametre değerlerini ayarlayın
Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak, istediğiniz koşullu mantığa veya kullanıcı hedeflemesine göre uygulama içi değerleri geçersiz kılan yeni sunucu tarafı varsayılan değerler oluşturabilirsiniz. Bu bölümde, bu değerleri oluşturmak için gereken Firebase konsolu adımları açıklanmaktadır.
- Firebase konsolunda projenizi açın.
- Remote Config kontrol panelini görüntülemek için menüden Remote Config'i seçin.
- Uygulamanızda tanımladığınız parametrelerle aynı ada sahip parametreler tanımlayın. Her parametre için bir varsayılan değer (sonuçta ilgili uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler de ayarlayabilirsiniz. Daha fazla bilgi için Remote Config Parametreleri ve Koşulları başlıklı makaleyi inceleyin.
6. adım: Değerleri getirin ve etkinleştirin
Remote Config arka ucundan parametre değerlerini almak için
fetch()
yöntemini çağırın. Arka uçta ayarladığınız tüm değerler getirilir ve Remote Config nesnesinde depolanır.Getirilen parametre değerlerini uygulamanızda kullanılabilir hale getirmek için
activate()
yöntemini çağırın.Değerleri tek bir çağrıda almak ve etkinleştirmek istediğiniz durumlarda, Remote Config arka ucundan değerleri almak ve uygulamaya sunmak için bir
fetchAndActivate()
isteği kullanabilirsiniz:await remoteConfig.fetchAndActivate();
Güncellenen bu parametre değerleri uygulamanızın davranışını ve görünümünü etkilediği için alınan değerleri, kullanıcınızın sorunsuz bir deneyim yaşamasını sağlayacak bir zamanda (ör. kullanıcı uygulamanızı bir sonraki açışında) etkinleştirmeniz gerekir. Daha fazla bilgi ve örnek için Remote Config yükleme stratejilerine bakın.
7. adım: Güncellemeleri anlık olarak dinleyin
Parametre değerlerini aldıktan sonra, Remote Config arka ucundan gelen güncellemeleri dinlemek için anlık Remote Config'i kullanabilirsiniz. Anlık Remote Config, güncellemeler mevcut olduğunda bağlı cihazlara sinyal gönderir ve yeni bir Remote Config sürümü yayınladıktan sonra değişiklikleri otomatik olarak getirir.
Gerçek zamanlı Remote Config'in Web için kullanılamadığını unutmayın.
Uygulamanızda güncellemeleri dinlemeye başlamak ve yeni parametre değerlerini otomatik olarak almak için
onConfigUpdated
değerini kullanın.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
Remote Config'inizin yeni bir sürümünü yayınladığınızda, uygulamanızı çalıştıran ve değişiklikleri dinleyen cihazlar yeni yapılandırmayı etkinleştirir.
Kısıtlama
Bir uygulama kısa bir süre içinde çok fazla getirme işlemi yaparsa getirme çağrıları sınırlandırılır ve FirebaseRemoteConfig
'nin lastFetchStatus
mülkünün değeri RemoteConfigFetchStatus.throttle
olur.
Remote Config için varsayılan minimum getirme aralığı 12 saattir. Bu, aslında kaç getirme çağrısı yapıldığından bağımsız olarak yapılandırmaların 12 saatlik bir zaman aralığında arka uçtan bir defadan fazla getirilmeyeceği anlamına gelir.
Uygulama geliştirme sırasında gerçek zamanlı Remote Config'i kullanmıyorsanız (önerdiğimiz bir yöntemdir) uygulamanızı geliştirip test ederken hızlı bir şekilde iterasyon yapabilmek için yapılandırmaları çok sık (saatte birkaç kez) getirip etkinleştirmek isteyebilirsiniz. 10'a kadar geliştiricinin bulunduğu bir projede hızlı iterasyon yapmak için setConfigSettings()
ile geçici olarak düşük bir minimum getirme aralığı ayarlayabilirsiniz.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Sonraki adımlar
Henüz yapmadıysanız Remote Config kullanım alanlarını inceleyin ve aşağıdakiler gibi temel kavramlar ve gelişmiş strateji dokümanlarından bazılarına göz atın: