1. Giriş
Son Güncelleme: 2021-03-09
Firebase Remote Config nedir?
Firebase Remote Config, kullanıcıların uygulama güncellemesi indirmelerini gerektirmeden uygulamanızın davranışını ve görünümünü ücretsiz olarak değiştirmenize olanak tanıyan bir bulut hizmetidir. Remote Config'i kullanırken uygulamanızın davranışını ve görünümünü kontrol eden uygulama içi varsayılan değerler oluşturursunuz. Daha sonra, Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak uygulama içi varsayılan değerleri tüm uygulama kullanıcıları ya da kullanıcı tabanınızın segmentleri için geçersiz kılabilirsiniz. Uygulamanız, güncellemelerin ne zaman uygulanacağını kontrol eder ve güncellemeleri sık sık kontrol edip performansı neredeyse hiç etkilemeden uygulayabilir.
İşleyiş şekli
Remote Config, parametre değerlerini getirme ve bunları önbelleğe alma gibi önemli görevleri yerine getiren bir istemci kitaplığı içerir. Bu kitaplık, yeni değerlerin ne zaman etkinleştirileceği konusunda kontrolü size bırakır. Böylece, bu değerler uygulamanızın kullanıcı deneyimini etkiler. Bu sayede, değişikliklerin zamanlamasını kontrol ederek uygulama deneyiminizi koruyabilirsiniz.
Remote Config istemci kitaplığının get yöntemleri, parametre değerleri için tek bir erişim noktası sağlar. Uygulamanız, uygulama içi varsayılan değerleri almak için kullandığı mantığın aynısını kullanarak sunucu tarafı değerleri alır. Böylece, çok fazla kod yazmadan Remote Config'in özelliklerini uygulamanıza ekleyebilirsiniz.
Uygulama içi varsayılan değerleri geçersiz kılmak için Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak uygulamanızda kullanılan parametrelerle aynı ada sahip parametreler oluşturursunuz. Her parametre için, uygulama içi varsayılan değeri geçersiz kılacak bir sunucu tarafı varsayılan değeri ayarlayabilir ve belirli koşulları karşılayan uygulama örnekleri için uygulama içi varsayılan değeri geçersiz kılacak koşullu değerler de oluşturabilirsiniz. Bu grafik, parametre değerlerinin Remote Config arka ucunda ve uygulamanızda nasıl önceliklendirildiğini gösterir:

Neler öğreneceksiniz?
- Firebase Remote Config'i uygulama
- Uygulamanızı güncellemeden değerleri değiştirmek için Firebase Remote Config'i kullanma
Gerekenler
- Android Studio'nun en son sürümü
- Firebase hesabı
- (Önerilir ancak isteğe bağlıdır) Uygulamanızı çalıştırmak için fiziksel bir Android cihaz
- Java veya Kotlin hakkında temel düzeyde bilgi
2. Başlarken
(İsteğe bağlı) Örnek kodu indirin
Bu codelab'de kendi test uygulamanızı oluşturacaksınız. Ancak mevcut örnek uygulamayı görmek ve çalıştırmak istiyorsanız hızlı başlangıç örnek kodunu indirebilirsiniz.
Bu codelab'in tüm kodunu indirmek için aşağıdaki düğmeyi tıklayın:
İndirilen ZIP dosyasını açın. Bu işlem, quickstart-android-master adlı bir kök klasörü açar.
...veya GitHub deposunu komut satırından kopyalayın.
$ git clone https://github.com/firebase/quickstart-android.git
Depoda birden fazla klasör var.
config klasörünü kullanacağız.
(İsteğe bağlı) Örnek kodu içe aktarma
Android Studio'yu başlatın ve karşılama ekranında "Projeyi içe aktar"ı seçin. Ardından indirilen klasörü açın ve
config klasörünü seçin. Ardından "Aç"ı tıklayın.

Yeni Android Projesi Oluşturma
- Android Studio'da yeni proje başlatma
- Temel Etkinlik'i seçin.
- "Projenizi Yapılandırın" ekranında:
- Projenize ad verin. Paket adı ve Kaydetme konumu sizin için otomatik olarak oluşturulur.
- Dil: Java
- Minimum SDK 16
3. Android projenize Firebase ve Firebase Analytics'i ekleme
Firebase projesi oluşturma
Firebase'i Android uygulamanıza ekleyebilmeniz için önce iOS uygulamanıza bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
- Firebase konsolunda Proje ekle'yi tıklayın, ardından bir Proje adı seçin veya girin.

Mevcut bir Google Cloud Platform (GCP) projeniz varsa Firebase kaynaklarını bu projeye eklemek için açılır menüden projeyi seçebilirsiniz.
- (İsteğe bağlı) Yeni bir proje oluşturuyorsanız Proje kimliği'ni düzenleyebilirsiniz.
Firebase, Firebase projenize otomatik olarak benzersiz bir kimlik atar. Firebase'in proje kimliğini nasıl kullandığı hakkında bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi ziyaret edin.
- Devam'ı tıklayın.
- Projeniz için Google Analytics'i ayarlayın. Bu sayede aşağıdaki Firebase ürünlerinden herhangi birini kullanarak optimum deneyim elde edebilirsiniz:
- Firebase Crashlytics
- Firebase Predictions
- Firebase Cloud Messaging
- Firebase Uygulama İçi Mesajlaşma
- Firebase Remote Config
- Firebase A/B Testi
İstendiğinde mevcut bir Google Analytics hesabını kullanmayı veya yeni bir hesap oluşturmayı seçin. Yeni bir hesap oluşturmayı seçerseniz Analytics raporlama konumunuzu belirleyin, ardından projeniz için veri paylaşımı ayarlarını ve Google Analytics şartlarını kabul edin.


- Proje oluştur'u (veya mevcut bir GCP projesi kullanıyorsanız Firebase ekle'yi) tıklayın.
Firebase, Firebase projeniz için kaynakları otomatik olarak sağlar. İşlem tamamlandığında Firebase konsolunda Firebase projenizin genel bakış sayfasına yönlendirilirsiniz.
Uygulamanızı Firebase'e kaydetme
Firebase projesi oluşturduktan sonra Android uygulamanızı bu projeye ekleyebilirsiniz.
Birden fazla derleme varyantını işleme dahil olmak üzere uygulamaları Firebase projesine ekleme ile ilgili en iyi uygulamalar ve dikkat edilmesi gereken noktalar hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
- Firebase konsoluna gidin.
- Kurulum iş akışını başlatmak için Projeye Genel Bakış sayfasının üst kısmındaki Android simgesini tıklayın. Firebase projenize zaten bir uygulama eklediyseniz platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.
- Uygulamanızın paket adını Android paket adı alanına girin.
- (İsteğe bağlı) Uygulama takma adı girin.
- SHA-1 bu proje için gerekli olmadığından SHA-1 alanını boş bırakın.
- Uygulamayı kaydet'i tıklayın.
Firebase Yapılandırma Dosyası'nı ekleme
Ardından, uygulamanız için gerekli tüm Firebase meta verilerini içeren bir yapılandırma dosyasını indirmeniz istenir. Firebase Android yapılandırma dosyanızı (google-services.json) almak için google-services.json dosyasını indir'i tıklayın.


Proje düzeyindeki Gradle dosyanızda (build.gradle), Google Hizmetleri Gradle eklentisini içerecek kurallar ekleyin. Google'ın Maven deposuna da sahip olduğunuzdan emin olun.
Proje düzeyinde build.gradle (<project>/build.gradle):
buildscript {
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
}
dependencies {
// ...
// Add the following line:
classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
// ...
}
}
Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle app/build.gradle) Google Hizmetleri Gradle eklentisini uygulayın:
Uygulama düzeyinde build.gradle (<project>/<app-module>/build.gradle):
apply plugin: ‘com.android.application'
// Add the following line:
apply plugin: ‘com.google.gms.google-services' // Google Services plugin
android {
// ...
}
Firebase SDK'sını Android uygulamanıza ekleyin
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.
(Bu işlem, örnek hızlı başlangıç kodunda zaten yapılmıştır)
Firebase Android BoM'u kullanarak Remote Config Android kitaplığına olan bağımlılığı modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle app/build.gradle) tanımlayın. Firebase Android BoM kullanıldığında uygulamanız Firebase Android kitaplıklarının daima uyumlu sürümlerini kullanır.
Ayrıca, Analytics'i ayarlama kapsamında uygulamanıza Google Analytics için Firebase SDK'sını da eklemeniz gerekir. Bağımlılıklar bölümüne aşağıdaki kodu ekleyin:
app/build.gradle
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:26.6.0')
// Declare 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'
}
Projenizi Gradle dosyalarıyla senkronize etme
Tüm bağımlılıkların uygulamanızda kullanılabilmesini sağlamak için File > Sync Project with Gradle Files (Dosya > Projeyi Gradle Dosyalarıyla Senkronize Et) seçeneğini belirleyerek projenizi Gradle dosyalarıyla senkronize edin.
4. Remote Config'in ana bileşenlerini inceleme
Şimdi bir uygulamada Remote Config'i kullanma adımlarını inceleyeceğiz. Bu adımlar, hızlı başlangıç codelab kodunda zaten tamamlanmıştır. Neler olduğunu anlamak için lütfen bu bölümü hızlı başlangıç codelab kodunu incelerken kullanın.
1. Remote Config Singleton Nesnesini Alma
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:
MainActivity.java
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 uygulamanızda ne zaman kullanılabileceğ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 Sınırlama bölümüne bakın.
2. Uygulama içi varsayılan parametre değerlerini ayarlama
Uygulamanızın Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi 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ımlayabilirsiniz. Remote Config hızlı başlangıç örnek uygulamasında, varsayılan parametre adlarını ve değerlerini tanımlamak için XML dosyası kullanılır. Kendi XML dosyanızı şu şekilde oluşturabilirsiniz:
resklasörünün altındaxmlklasörü oluşturun.

- Yeni oluşturulan
xmlklasörünü sağ tıklayın ve bir dosya oluşturun.

- Varsayılan değerleri ayarlayın. Sonraki bölümde, Remote Config hızlı başlangıç XML dosyasındaki varsayılan değerleri değiştirmeyi deneyeceksiniz.
- Bu değerleri, gösterildiği gibi setDefaultsAsync(int) kullanarak Remote Config nesnesine ekleyin:
MainActivity.java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
3. Uygulamanızda kullanmak için parametre değerleri alma
Artık Remote Config nesnesinden parametre değerleri alabilirsiniz. Arka uçta değerler ayarlayıp bunları getirip etkinleştirirseniz bu değerler uygulamanızda kullanılabilir. Aksi takdirde, setDefaultsAsync(int) kullanılarak yapılandırılan uygulama içi parametre değerlerini alırsınız. Bu değerleri almak için aşağıdaki yöntemi çağırın. Bu yöntem, parametre anahtarını bağımsız değişken olarak sağlayarak uygulamanızın beklediği veri türüyle eşlenir:
4. Değerleri getirin ve etkinleştirin
- Remote Config arka ucundan parametre değerlerini getirmek için fetch() yöntemini çağırın. Arka uçta ayarladığınız tüm değerler getirilip Remote Config nesnesinde depolanır.
- Alınan parametre değerlerini uygulamanızda kullanılabilir hale getirmek için activate() yöntemini çağırın. Değerleri tek bir çağrıda getirmek ve etkinleştirmek istediğiniz durumlarda, Remote Config arka ucundan değerleri getirmek ve bunları uygulamada kullanılabilir hale getirmek için fetchAndActivate() isteğini kullanabilirsiniz:
MainActivity.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();
}
});
Bu güncellenmiş 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 (ör. kullanıcı uygulamanızı bir sonraki açtığında) etkinleştirmeniz gerekir. Daha fazla bilgi ve örnek için Remote Config yükleme stratejileri başlıklı makaleyi inceleyin.
Sınırlama
Bir uygulama kısa süre içinde çok fazla kez getirme işlemi yaparsa getirme çağrıları sınırlandırılır ve SDK FirebaseRemoteConfigFetchThrottledException değerini döndürür. SDK'nın 17.0.0 sürümünden önce, 60 dakikalık bir pencerede 5 getirme isteği sınırı vardı (daha yeni sürümlerde daha izin verici sınırlar vardır).
Uygulama geliştirme sırasında, uygulamanızı geliştirip test ederken hızlı bir şekilde yineleme yapabilmek için yapılandırmaları çok sık (saatte birçok kez) getirmek ve etkinleştirmek isteyebilirsiniz. 10 geliştiriciye kadar olan bir projede hızlı yinelemeyi desteklemek için uygulamanızda minimum getirme aralığı düşük (setMinimumFetchIntervalInSeconds) olan bir FirebaseRemoteConfigSettings nesnesi ayarlayabilirsiniz.
Remote Config için varsayılan minimum getirme aralığı 12 saattir. Bu, kaç getirme çağrısı yapıldığına bakılmaksızın yapılandırmaların 12 saatlik bir süre içinde arka uçtan birden fazla kez getirilmeyeceği anlamına gelir. Daha net bir ifadeyle, minimum getirme aralığı aşağıdaki sırayla belirlenir:
fetch(long)içindeki parametreFirebaseRemoteConfigSettings.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) yöntemini kullanın.
5. Remote Config ile uygulama davranışını değiştirme
Uygulama içi varsayılan parametreleri değiştirme
res/xml/remote_config_defaults.xml simgesini açın ve varsayılan değerleri başka bir şeyle değiştirin.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>loading_phrase</key>
<value>Fetching config...</value>
</entry>
<entry>
<key>welcome_message_caps</key>
<value>false</value>
</entry>
<entry>
<key>welcome_message</key>
<value>Welcome to my awesome app!</value>
</entry>
</defaultsMap>
<!-- END xml_defaults -->
Uygulama içi varsayılan değer değişikliğini doğrulama
- Davranışı onaylamak için projeyi bir emülatörde veya test cihazı kullanarak çalıştırın.
- Java veya Kotlin sürümünde Aç'ı tıklayın.

- Ana görünümdeki karşılama mesajını inceleyin.

Remote Config arka ucunda parametre değerlerini ayarlama
Şimdi de değerleri Remote Config üzerinden göndermeyi test edelim. Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak, istediğiniz koşullu mantığa ya da kullanıcı hedeflemeye 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 Firebase konsolunda yapılması gereken adımlar açıklanmaktadır.
- Firebase konsolunu açın ve projenizi seçin.
- Uzaktan Yapılandırma kontrol panelini görüntülemek için Etkileşim bölümündeki yan menüden Uzaktan Yapılandırma'yı seçin.
- Parametre ekle bölümünde
Parameter key.Default valuealtına istediğiniz metni ekleyin. Ardından Parametre Ekle'yi tıklayın. Bu codelab'de,res/xml/remote_config_defaults.xmldosyasındaki parametre anahtarlarını kullanacağız. Ayrıntılar için aşağıdaki tabloya bakın:
Parametre anahtarı | Varsayılan değer ( | Açıklama |
loading_phrase | Yapılandırma alınıyor... | Dize; Remote Config değerleri getirilirken gösterilir. |
welcome_message_caps | yanlış | Boole; doğruysa welcome_message değerini tümü büyük harf olacak şekilde değiştirir. |
welcome_message | Harika uygulamama hoş geldiniz. | Dize; karşılama mesajı |
Örnek ekran görüntüsü:

- Parametre eklemeyi tamamladığınızda "Değişiklikleri Yayınla"yı tıklayın.
- Uygulamanızı tekrar bir emülatörde veya cihazda çalıştırın ve bu kez "Fetch Remote Welcome" (Uzak Karşılama Getir) düğmesini tıklayın.

- Karşılama mesajı, Remote Config parametrenize ve değerlerinize göre güncellenmelidir.
6. Tebrikler
Tebrikler, karşılama mesajını değiştirmek için Remote Config'i başarıyla kullandınız. Uygulamaları değiştirmek ve özelleştirmek için Remote Config'i kullanmanın daha birçok yolu vardır. Lütfen aşağıdaki ek kaynaklara göz atın: