Uygulamanızda parametreleri tanımlamak ve değerlerini bulutta güncellemek için Firebase Remote Config'ü kullanabilirsiniz. Böylece, uygulama güncellemesi dağıtmadan uygulamanızın görünümünü ve davranışını değiştirebilirsiniz. Bu kılavuz, başlangıç adımlarında size yol gösterir ve web sitesinden klonlayabilen veya indirilebilen örnek koda firebase/quickstart-android GitHub deposudur.
1. adım: Firebase ve Remote Config SDK'sını uygulamanıza ekleyin
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Remote Config için Google Analytics, uygulama örneklerinin kullanıcı özelliklerine ve kitlelere koşullu olarak hedeflenmesi amacıyla gereklidir. Şunlardan emin olun: projenizde Google Analytics özelliğini etkinleştirirsiniz.
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
) Android için Remote Config kitaplığının bağımlılığını ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek içinAyrıca, Analytics'ü ayarlama kapsamında Google Analytics için Firebase SDK'sını uygulamanıza eklemeniz gerekir.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.4.0")) // Add the dependencies for the Remote Config and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config") implementation("com.google.firebase:firebase-analytics") }
Firebase Android BoM kullanıldığında uygulamanız Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.
(Alternatif) Firebase kitaplığı bağımlılıklarını kullanmadan BoM
Firebase BoM kullanmamayı seçerseniz her Firebase kitaplığı sürümünü belirtmeniz gerekir değerini alır.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM'ı kullanmanızı önemle tavsiye ederiz. Bu, tüm sürümlerin uyumlu olmasını sağlar.
dependencies { // Add the dependencies for the Remote Config and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config:22.0.0") implementation("com.google.firebase:firebase-analytics:22.1.2") }
2. Adım: Remote Config tekli nesnesini alın
Bir Remote Config nesne örneği alın ve minimum getirme aralığı (sık yenilemeler için):
Kotlin+KTX
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Singleton nesnesi, uygulama içi varsayılan parametre değerlerini depolamak, getirmek ve arka uçtan güncel parametre değerlerini kontrol edebilir ve kullanılabilir hale gelir.
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.
Uygulamanızın
res/xml
klasöründe depolanan bir Map nesnesi veya XML kaynak dosyası kullanarak bir dizi parametre adı ve varsayılan parametre değeri tanımlayın. Remote Config hızlı başlangıç örnek uygulaması, varsayılan parametre adlarını ve değerlerini tanımlamak için bir XML dosyası kullanır.Remote Config arka uç parametre değerlerini zaten yapılandırdıysanız tüm varsayılan değerleri içeren oluşturulmuş bir XML dosyasını indirip uygulamanızın
res/xml
dizinine kaydedebilirsiniz:REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=XML -o remote_config_defaults.xml
Firebase konsol
Parametreler sekmesinden, Menü'yü açın ve Varsayılan değerleri indir'i seçin.
İstendiğinde Android için.xml'yi etkinleştirin ve ardından Dosyayı indir
Bu değerleri, şunu kullanarak Remote Config nesnesine ekleyin:
setDefaultsAsync(int)
, gösterildiği gibi:Kotlin+KTX
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
4. adım: Uygulamanızda kullanacağınız 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, setDefaultsAsync(int)
kullanılarak yapılandırılmış uygulama içi parametre değerlerini alırsınız.
Bu değerleri almak için aşağıda listelenen ve veri türüyle eşleşen yöntemi çağırın
parametre anahtarını bağımsız değişken olarak sağlar:
5. Adım: Remote Config arka ucunda parametre değerlerini ayarlayın
Firebase konsolunu veya Remote Config arka uç API'si, uygulama içi değerleri geçersiz kılan yeni sunucu tarafı varsayılan değerleri oluşturabilirsiniz istediğiniz koşullu mantığa veya kullanıcı hedeflemesine göre. Bu bölümde, bu değerleri oluşturmak için Firebase konsol adımlarından bahsedilmektedir.
- Firebase konsolunda projenizi açın.
- Remote Config öğesini görüntülemek için menüden Remote Config öğesini seçin. kontrol paneli
- 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.
6. adım: Değerleri getirin ve etkinleştirin
- Remote Config arka ucundan parametre değerlerini getirmek için şunu çağırın:
fetch()
yöntemidir. Arka uçta ayarladığınız tüm değerler getirilir ve Remote Config nesnesinde saklanır. Getirilen parametre değerlerini uygulamanızda kullanılabilir hale getirmek için
activate()
yöntemidir.Değerleri tek bir çağrıda almak ve etkinleştirmek istediğiniz durumlarda, Remote Config arka uçtan değer almak ve bunları uygulamaya sunmak için bir
fetchAndActivate()
isteği kullanabilirsiniz:Kotlin+KTX
remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result Log.d(TAG, "Config params updated: $updated") Toast.makeText( this, "Fetch and activate succeeded", Toast.LENGTH_SHORT, ).show() } else { Toast.makeText( this, "Fetch failed", Toast.LENGTH_SHORT, ).show() } displayWelcomeMessage() }
Java
mFirebaseRemoteConfig.fetchAndActivate() .addOnCompleteListener(this, new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { if (task.isSuccessful()) { boolean updated = task.getResult(); Log.d(TAG, "Config params updated: " + updated); Toast.makeText(MainActivity.this, "Fetch and activate succeeded", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Fetch failed", Toast.LENGTH_SHORT).show(); } displayWelcomeMessage(); } });
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 getirdikten sonra gerçek zamanlı Remote Config işlevini kullanarak Remote Config arka ucundan gelen güncellemeleri dinleyin. Güncellemeler mevcut olduğunda bağlı cihazlara Remote Config anlık sinyal gönderir ve yeni bir Remote Config sürümü yayınladıktan sonra değişiklikleri otomatik olarak getirir.
Gerçek zamanlı güncellemeler, Android v21.3.0 ve sonraki sürümler (Firebase BoM v31.2.4 ve sonraki sürümler) için Firebase SDK'sı tarafından desteklenir.
Uygulamanızda güncellemeleri dinlemeye başlamak için
addOnConfigUpdateListener()
uygulamasını kullanın ve yeni parametre değerlerini otomatik olarak getirir. Güncellenen yapılandırmayı etkinleştirmek içinonUpdate()
geri çağırma işlevini uygulayın.Kotlin+KTX
remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener { override fun onUpdate(configUpdate : ConfigUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.updatedKeys); if (configUpdate.updatedKeys.contains("welcome_message")) { remoteConfig.activate().addOnCompleteListener { displayWelcomeMessage() } } } override fun onError(error : FirebaseRemoteConfigException) { Log.w(TAG, "Config update error with code: " + error.code, error) } })
Java
mFirebaseRemoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() { @Override public void onUpdate(ConfigUpdate configUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.getUpdatedKeys()); mFirebaseRemoteConfig.activate().addOnCompleteListener(new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { displayWelcomeMessage(); } }); } @Override public void onError(FirebaseRemoteConfigException error) { Log.w(TAG, "Config update error with code: " + error.getCode(), error); } });
Bundan sonra Remote Config cihazınızın yeni bir sürümünü yayınladığınızda, cihazlar çalışan ve değişiklikleri dinleyen bir kullanıcı,
ConfigUpdateListener
.
Kısıtlama
Bir uygulama kısa bir süre içinde çok fazla getirme yaparsa getirme aramaları
Throttled ve SDK şunu döndürür:
FirebaseRemoteConfigFetchThrottledException
SDK 17.0.0 sürümünden önce,
sınır, 60 dakikada 5 getirme isteğiydi
pencere (yeni sürümlerde daha geniş kapsamlı izin sınırları vardır).
Uygulamanızı geliştirip test ederken hızlı bir şekilde iterasyon yapabilmek için uygulama geliştirme sırasında yapılandırmaları çok sık (saatte birkaç kez) getirip etkinleştirmek isteyebilirsiniz. Gerçek zamanlı Remote Config güncellemeleri, yapılandırma sunucu üzerinde güncellendiğinde önbelleği otomatik olarak atlar. Hızlı iterasyona uyum sağlamak için
10’a kadar geliştiricinin bulunduğu bir projede geçici olarak
Minimum getirme aralığına sahip FirebaseRemoteConfigSettings
nesne
(setMinimumFetchIntervalInSeconds
) inceleyebilirsiniz.
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. Özellikle, minimum getirme aralığı aşağıdaki sırayla belirlenir:
fetch(long)
hücresindeki parametreFirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
hücresindeki parametre- Varsayılan değer olan 12 saat
Minimum getirme aralığını özel bir değere ayarlamak için FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)
değerini kullanın.
Sonraki adımlar
Henüz yapmadıysanız Remote Configkullanı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: