Firebase Remote Config'i kullanmaya başlayın


Firebase Remote Config'i kullanarak uygulamanızdaki parametreleri tanımlayabilir ve değerlerini buluttaki gibi göstererek, görünümünü ve davranışını değiştirebilirsiniz. uygulamanızı yüklemenizi sağlar. 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'yı uygulamanıza ekleyin

  1. Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

  2. Remote Config için, uygulama örneklerinin koşullu hedeflemesi kullanıcı özelliklerine ve kitlelere girebilir. Şunlardan emin olun: projenizde Google Analytics'i etkinleştirmelisiniz.

  3. Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), Android için Remote Config kitaplığına bağımlılığı ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek için

    Ayrıca, Analytics kurulumunu yaparken Firebase SDK'sını uygulamanıza entegre edebilirsiniz.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
    
        // 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'u kullanarak, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.

    (Alternatif) BoM'u kullanmadan Firebase kitaplığı bağımlılıklarını ekleyin

    Firebase BoM'yi kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü belirtmeniz gerekir değerini alır.

    Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız, kitaplık sürümlerini yönetmek için BoM kullanmanızı öneririz. Böylece, uyumlu olur.

    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.0.2")
    }
    
    .
    'nı inceleyin. Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Başlamak için kalan süre: Ekim 2023 (Firebase BoM 32.5.0), hem Kotlin hem de Java geliştiricileri (ayrıntılar için bkz. bu girişimle ilgili SSS).

ziyaret edin.

2. Adım: Remote Config tekil nesnesini alın

Remote Config nesne örneği alma ve minimum getirme aralığı (sık yenilemelere izin vermek 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, nispeten düşük bir minimum getirme değeri ayarlamanız önerilir. seçebilirsiniz. Kısıtlama bölümünü inceleyin konulu videomuzu izleyin.

3. Adım: Uygulama içi varsayılan parametre değerlerini ayarlayın

Uygulama içi varsayılan parametre değerlerini Remote Config'de ayarlayabilirsiniz ile bağlantı kurmadan önce amaçlandığı gibi davranmasını sağlamak için Remote Config arka ucu; arka uçta ayarlanır.

  1. Parametre adlarını ve varsayılan parametre değerlerini tanımlamak için Harita nesnesi veya XML kaynak dosyası uygulamanızın res/xml klasöründe saklanıyor. Remote Config hızlı başlangıç kılavuzu örnek uygulama, XML dosyası kullanabilirsiniz.

    Remote Config arka uç parametre değerlerini daha önce yapılandırdıysanız tüm varsayılan değerleri ve mevcut değer içeren verileri içeren, bunu uygulamanızın res/xml dizinine kaydedin:

    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 konsolu

    1. Parametreler sekmesinden, Menü'yü açın ve Varsayılan değerleri indir'i seçin.

    2. İstendiğinde Android için.xml'yi etkinleştirin ve ardından Dosyayı indir

  2. Bu değerleri Remote Config nesnesine eklemek için 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 kullanılacak parametre değerlerini alın

Artık Remote Config nesnesinden parametre değerleri alabilirsiniz. Mevcut arka uçtaki değerleri kullanıp bunları getirmeli ve daha sonra uygulamanızda kullanılabiliyor. Aksi takdirde uygulama içi parametre değerleri setDefaultsAsync(int). 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'leri 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üm , bu değerleri oluşturmak için Firebase konsolunda uygulanacak adımları açıklar.

  1. Firebase konsolunda projenizi açın.
  2. Remote Config'i görüntülemek için menüden Remote Config'i seçin kontrol paneli
  3. Şu parametrede tanımladığınız parametrelerle aynı adlara sahip parametreleri tanımlayın: en iyi şekilde yararlanabilirsiniz. Her parametre için bir varsayılan değer ( karşılık gelen uygulama içi varsayılan değeri geçersiz kılabilir) koşullu değerler oluşturabilirsiniz. Daha fazla bilgi edinmek için Remote Config Parametreleri ve Koşullar.

6. Adım: Değerleri getirin ve etkinleştirin

  1. Remote Config arka ucundan parametre değerlerini almak için fetch() yöntemidir. Arka uçta ayarladığınız tüm değerler getirilir ve Remote Config nesnesinde saklanır.
  2. Getirilen parametre değerlerini uygulamanızda kullanılabilir hale getirmek için activate() yöntemidir.

    Değerleri tek bir çağrıda getirip etkinleştirmek istediğiniz durumlarda ,fetchAndActivate() Remote Config arka ucu ve bunları uygulamanın kullanımına sunun:

    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();
                }
            });

Bu güncellenen parametre değerleri davranışı ve görünümü etkilediği için getirmeyi seçerseniz, getirilen değerleri uygulamanın sağlandığından sorunsuz bir deneyim sunmasını sağlar (örneğin, kullanıcı uygulamasını indirin. Remote Config yükleme stratejilerine bakın daha fazla bilgi ve örnek bulabilirsiniz.

7. adım: Güncellemeleri gerçek zamanlı olarak dinleyin

Parametre değerlerini getirdikten sonra, gerçek zamanlı Remote Config özelliğini kullanarak Remote Config arka ucundan gelen güncellemeleri dinleyin. Gerçek zamanlı Remote Config, güncelleme olduğunda bağlı cihazlara sinyal gönderir ve yeni bir Remote Config yayınlamanızın ardından değişiklikleri otomatik olarak getirir sürümünü değil.

Gerçek zamanlı güncellemeler, Android 21.3.0+ sürümü için Firebase SDK'sı (Firebase BoM) tarafından desteklenir sürüm 31.2.4 ve sonraki sürümler için geçerlidir.)

  1. Uygulamanızda güncellemeleri dinlemeye başlamak için addOnConfigUpdateListener() uygulamasını kullanın ve yeni parametre değerlerini otomatik olarak getirir. onUpdate() uygulayın geri çağırma işlevini kullanı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);
        }
    });
    
  2. Remote Config'inizin yeni bir sürümünü yayınladığınızda, ç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).

Uygulama geliştirme sürecinde, çok sayıda yapılandırmaları almak ve geliştirdikçe ve sürekli yineleme yapabilmenizi sağlamak için sık sık (saatte birkaç kez) uygulamanızı test edin. Gerçek zamanlı Remote Config güncellemeleri sunucu güncellendiğinde önbelleğe alınır. 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 ve yapılandırmaların 12 saat içinde arka uçtan bir kereden fazla alınmadığı anlamına gelir sayısını belirler. Daha ayrıntılı belirtmek gerekirse, minimum getirme aralığı şu sırayla belirlenir:

  1. fetch(long) hücresindeki parametre
  2. FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) hücresindeki parametre
  3. Varsayılan değer olan 12 saat

Minimum getirme aralığını özel bir değere ayarlamak için FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) işlevini kullanın.

Sonraki adımlar

Henüz yapmadıysanız Remote Config'i keşfedin kullanım alanlarına göz atın ve Aşağıdakileri içeren temel kavramlar ve gelişmiş stratejilerle ilgili belgeler: