Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Начать работу с Firebase Remote Config

Вы можете использовать Firebase Remote Config для определения параметров в вашем приложении и обновления их значений в облаке, что позволяет вам изменять внешний вид и поведение вашего приложения без распространения обновления приложения. Это руководство проведет вас через шаги , чтобы начать работу и предоставляет некоторые примеры кода, каждый из которых доступен в клоне или скачать из firebase / Быстрый старт-андроида GitHub хранилище.

Добавьте Firebase и Remote Config SDK в свое приложение

  1. Если вы еще не сделали, добавить Firebase в свой Android проекта .

  2. Для удаленного Config, Google Analytics требуется для условного нацеливания экземпляров приложения для пользовательских свойств, аудиторий и Firebase Предсказания. Убедитесь , что вы включите Google Analytics в вашем проекте.

  3. Использование Firebase Android Банка Москвы , объявить зависимость для удаленной библиотеки Config Android в вашем модуле (приложение уровня) Gradle файл (обычно app/build.gradle ).

    Кроме того, в рамках настройки Analytics вам необходимо добавить в приложение Firebase SDK для Google Analytics.

    Джава

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // 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'
    }
    

    С помощью Firebase Android Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

    (Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

    Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

    Обратите внимание , что если вы используете несколько библиотеки Firebase в вашем приложении, мы настоятельно рекомендуем использовать спецификации для управления версиями библиотеки, что гарантирует , что все версии совместимы.

    dependencies {
        // Declare 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.0.1'
        implementation 'com.google.firebase:firebase-analytics:19.0.2'
    }
    

    Котлин + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    С помощью Firebase Android Банка Москвы , ваше приложение будет всегда использовать совместимые версии библиотек Firebase Android.

    (Альтернативный) Объявляет Firebase библиотеки зависимостей без использования спецификации

    Если вы решите не использовать Firebase BoM, вы должны указать каждую версию библиотеки Firebase в ее строке зависимости.

    Обратите внимание , что если вы используете несколько библиотеки Firebase в вашем приложении, мы настоятельно рекомендуем использовать спецификации для управления версиями библиотеки, что гарантирует , что все версии совместимы.

    dependencies {
        // Declare 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-ktx:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.2'
    }
    

Получить одноэлементный объект Remote Config

Получите экземпляр объекта Remote Config и установите минимальный интервал выборки для частого обновления:

Джава

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Котлин + KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Одноэлементный объект используется для хранения значений параметров по умолчанию в приложении, получения обновленных значений параметров из серверной части и управления, когда полученные значения становятся доступными для вашего приложения.

Во время разработки рекомендуется установить относительно низкий минимальный интервал выборки. См дросселирования для получения дополнительной информации.

Установить значения параметров по умолчанию в приложении

Вы можете установить значения параметров по умолчанию внутри приложения в объекте Remote Config, чтобы ваше приложение вело себя должным образом до подключения к серверной части Remote Config и чтобы значения по умолчанию были доступны, если в серверной части ничего не задано.

  1. Определить набор имен параметров и по умолчанию значения параметров с использованием карты объекта или файл XML ресурсов , хранящийся в вашем приложении res/xml папке. Удаленная настройка QUICKSTART образец приложение использует файл XML для определения по умолчанию имен параметров и значений.
  2. Добавьте эти значения к удаленному объекту Config , используя setDefaultsAsync(int) , как показано на рисунке:

Джава

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Котлин + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Получите значения параметров для использования в вашем приложении

Теперь вы можете получать значения параметров из объекта Remote Config. Если вы установите значения в бэкэнде, получите их, а затем активируете, эти значения будут доступны вашему приложению. В противном случае, вы получите значения параметров в-приложения , настроенные с помощью setDefaultsAsync(int) . Чтобы получить эти значения, вызовите метод, указанный ниже, который соответствует типу данных, ожидаемому вашим приложением, предоставив ключ параметра в качестве аргумента:

Установите значения параметров в бэкэнде Remote Config

Использование Firebase консоли или удаленного API - интерфейсы бэкэнд Config , вы можете создать новые значения на стороне сервера по умолчанию , которые переопределяют значения в приложении в соответствии с нужной условной логики или пользовательский таргетинг. В этом разделе описаны шаги консоли Firebase для создания этих значений.

  1. В Firebase консоли , откройте свой проект.
  2. Выберите Remote Config из меню для просмотра удаленной приборной панели Config.
  3. Определите параметры с теми же именами, что и параметры, которые вы определили в своем приложении. Для каждого параметра вы можете установить значение по умолчанию (которое в конечном итоге переопределит соответствующее значение по умолчанию в приложении), а также вы можете установить условные значения. Чтобы узнать больше, см Удаленная настройка параметров и условий .

Получить и активировать значения

  1. Для извлечения значения параметров из удаленного Config бэкэнда, вызовите fetch() метод. Любые значения, которые вы устанавливаете в серверной части, извлекаются и сохраняются в объекте Remote Config.
  2. Для того, чтобы надуманные значения параметров доступны для вашего приложения, вызовите activate() метод.

    В тех случаях , когда вы хотите , чтобы принести и активизируете значения в одном вызове, вы можете использовать fetchAndActivate() запрос на выборку значений из удаленного Config бэкэнда и сделать их доступными для приложения:

    Джава

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

    Котлин + 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()
            }

Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вы должны активировать полученные значения в то время, которое обеспечивает удобство работы вашего пользователя, например, когда пользователь в следующий раз откроет ваше приложение. См Удаленные стратегии загрузки Config для получения более подробной информации и примеров.

Дросселирование

Если приложение получает слишком много раз в течение короткого периода времени, получать звонки задушили и SDK возвращает FirebaseRemoteConfigFetchThrottledException . До версии SDK 17.0.0 ограничение составляло 5 запросов на выборку в 60-минутном окне (более новые версии имеют более разрешительные ограничения).

Во время разработки приложения вам может потребоваться очень часто получать и активировать конфигурации (много раз в час), чтобы вы могли быстро выполнять итерации при разработке и тестировании приложения. Для размещения быстрой итерации по проекту до 10 разработчиков, вы можете временно установить через FirebaseRemoteConfigSettings объект с низкой минимальной выборки интервала ( setMinimumFetchIntervalInSeconds ) в вашем приложении.

Минимальный интервал выборки по умолчанию для Remote Config составляет 12 часов, что означает, что конфигурации не будут извлекаться из серверной части более одного раза в 12-часовом окне, независимо от того, сколько вызовов выборки фактически сделано. В частности, минимальный интервал выборки определяется в следующем порядке:

  1. Параметр fetch(long)
  2. Параметр FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. Значение по умолчанию - 12 часов.

Для того, чтобы установить минимальный интервал выборки для пользовательского значения, используйте FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Следующие шаги

Если вы уже не имеете, изучить Удаленная настройка вариантов использования , и взглянуть на некоторые из ключевых концепций и передовых стратегий документации, в том числе: