Uygulamanızdaki parametreleri tanımlamak ve bunların değerlerini bulutta 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ılavuz, başlama adımlarında size yol gösterir ve tümü firebase/quickstart-android GitHub deposundan kopyalanabilen veya indirilebilen bazı örnek kodlar sağlar.
1. Adım: Firebase'i ve Remote Config SDK'yı uygulamanıza ekleyin
Henüz yapmadıysanız Android projenize Firebase'i ekleyin .
Remote Config'de, uygulama örneklerinin kullanıcı özelliklerine ve kitlelere koşullu olarak hedeflenmesi için Google Analytics gereklidir. Projenizde Google Analytics'i etkinleştirdiğinizden emin olun.
Modülünüzde (uygulama düzeyi) Gradle dosyanızda (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
), Remote Config için bağımlılığı ekleyin Android için kütüphane. Kitaplık sürümlerini kontrol etmek için Firebase Android BoM'yi kullanmanızı öneririz.Ayrıca Analytics kurulumunun bir parçası olarak 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:32.6.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'yi kullandığınızda uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
Kotlin'e özgü bir kütüphane modülü mü arıyorsunuz? Ekim 2023'ten itibaren (Firebase BoM 32.5.0) hem Kotlin hem de Java geliştiricileri ana kütüphane modülüne güvenebilecekler (ayrıntılar için bu girişimle ilgili SSS'ye bakın).(Alternatif) BoM'yi kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin
Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlayan BoM'yi kullanmanızı önemle tavsiye ettiğimizi unutmayın.
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:21.6.0") implementation("com.google.firebase:firebase-analytics:21.5.0") }
Adım 2: Remote Config tekil nesnesini edinin
Bir Remote Config nesne örneği alın ve sık yenilemelere izin vermek için minimum getirme aralığını ayarlayın:
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, güncellenen parametre değerlerini arka uçtan getirmek ve getirilen değerlerin ne zaman uygulamanız tarafından kullanılabilir hale getirileceğini kontrol etmek için kullanılır.
Geliştirme sırasında nispeten düşük bir minimum getirme aralığı ayarlamanız önerilir. Daha fazla bilgi için Kısıtlama konusuna bakın.
3. Adım: Uygulama içi varsayılan parametre değerlerini ayarlayın
Remote Config nesnesinde uygulama içi varsayılan parametre değerlerini ayarlayabilirsiniz, böylece uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır ve arka uçta ayarlanmadığı takdirde varsayılan değerler kullanılabilir olur.
Bir Harita nesnesini veya uygulamanızın
res/xml
klasöründe saklanan bir XML kaynak dosyasını 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 önceden yapılandırdıysanız, tüm varsayılan değerleri içeren oluşturulmuş bir XML dosyasını indirebilir ve bunu uygulamanızın
res/xml
dizinine kaydedebilirsiniz:DİNLENMEK
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 konsolu
Parametreler sekmesinde Menüsünü açın ve Varsayılan değerleri indir seçeneğini seçin.
İstendiğinde, Android için .xml dosyasını etkinleştirin ve ardından Dosyayı indir seçeneğini tıklayın.
Bu değerleri, gösterildiği gibi
setDefaultsAsync(int)
kullanarak Remote Config nesnesine ekleyin:Kotlin+KTX
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
4. Adım: Uygulamanızda kullanılacak parametre değerlerini alın
Artık Remote Config nesnesinden parametre değerlerini alabilirsiniz. Değerleri arka uçta ayarlayıp getirirseniz ve etkinleştirirseniz bu 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 elde etmek için, parametre anahtarını bağımsız değişken olarak sağlayarak, uygulamanızın beklediği veri türüyle eşleşen, aşağıda listelenen yöntemi çağırın:
Adım 5: 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ı hedeflemeye göre uygulama içi değerleri geçersiz kılan yeni sunucu tarafı varsayılan değerleri oluşturabilirsiniz. Bu bölümde, bu değerleri oluşturmaya yönelik 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ı adlara sahip parametreleri tanımlayın. Her parametre için varsayılan bir değer ayarlayabilirsiniz (bu değer, sonuçta karşılık gelen uygulama içi varsayılan değeri geçersiz kılacaktır) ve ayrıca koşullu değerler de ayarlayabilirsiniz. Daha fazla bilgi edinmek için bkz. Uzaktan Yapılandırma Parametreleri ve Koşulları .
6. Adım: Değerleri getir ve etkinleştir
- 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 alınır ve Remote Config nesnesinde saklanır. Getirilen parametre değerlerini uygulamanızda kullanılabilir hale getirmek için
activate()
yöntemini çağırın.Değerleri tek çağrıda alıp etkinleştirmek istediğiniz durumlarda, Remote Config arka ucundan değerleri almak ve bunları uygulamanın kullanımına 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ğinden, getirilen değerleri, kullanıcınız için sorunsuz bir deneyim sağlayacak bir zamanda (örneğin, kullanıcının uygulamanızı bir sonraki açılışında) etkinleştirmeniz gerekir. Daha fazla bilgi ve örnek için Remote Config yükleme stratejilerine bakın.
7. Adım: Güncellemeleri gerçek zamanlı olarak dinleyin
Parametre değerlerini getirdikten sonra, Remote Config arka ucundan güncellemeleri dinlemek için gerçek zamanlı Remote Config'i kullanabilirsiniz. Gerçek Zamanlı 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ı güncellemeler, Android v21.3.0+ (Firebase BoM v31.2.4+) için Firebase SDK'sı tarafından desteklenir.
Uygulamanızda, güncellemeleri dinlemeye başlamak ve yeni parametre değerlerini otomatik olarak getirmek için
addOnConfigUpdateListener()
kullanın. Güncellenen yapılandırmayı etkinleştirmek içinonUpdate()
geri çağrısını 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
() { @Override public void onComplete(@NonNull Task task) { displayWelcomeMessage(); } }); } @Override public void onError(FirebaseRemoteConfigException error) { Log.w(TAG, "Config update error with code: " + error.getCode(), error); } }); Remote Config'inizin yeni bir sürümünü bir sonraki yayınlayışınızda, uygulamanızı çalıştıran ve değişiklikleri dinleyen cihazlar
ConfigUpdateListener
arayacaktır.
Kısıtlama
Bir uygulama kısa bir süre içinde çok fazla kez getirilirse, getirme çağrıları kısıtlanır ve SDK, FirebaseRemoteConfigFetchThrottledException
değerini döndürür. SDK sürüm 17.0.0'dan önce sınır, 60 dakikalık bir pencerede 5 getirme isteğiydi (daha yeni sürümlerde daha fazla izin sınırı vardır).
Uygulama geliştirme sırasında, uygulamanızı geliştirirken ve test ederken hızla yinelemenize olanak sağlamak için yapılandırmaları çok sık (saatte birçok kez) alıp etkinleştirmek isteyebilirsiniz. Gerçek Zamanlı Uzaktan Yapılandırma güncellemeleri, sunucuda yapılandırma güncellendiğinde önbelleği otomatik olarak atlar. En fazla 10 geliştiricinin bulunduğu bir projede hızlı yinelemeye uyum sağlamak için uygulamanızda geçici olarak düşük minimum getirme aralığına ( setMinimumFetchIntervalInSeconds
) sahip bir FirebaseRemoteConfigSettings
nesnesi ayarlayabilirsiniz.
Remote Config için varsayılan minimum getirme aralığı 12 saattir; bu, gerçekte kaç tane getirme çağrısı yapıldığına bakılmaksızın yapılandırmaların 12 saatlik bir pencerede bir kereden fazla arka uçtan getirilmeyeceği anlamına gelir. Özellikle minimum getirme aralığı aşağıdaki sıraya göre belirlenir:
-
fetch(long)
içindeki parametre -
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
içindeki parametre - Varsayılan değer 12 saattir
Minimum getirme aralığını özel bir değere ayarlamak için FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)
kullanın.
Sonraki adımlar
Henüz yapmadıysanız, uzaktan yapılandırma kullanım durumlarını keşfedin ve bazı temel kavramlara ve gelişmiş stratejiler belgelerini aşağıdakilere inceleyin: