Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Начните работу с Firebase Remote Config на Android

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

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

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

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

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

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

    Ява

    implementation 'com.google.firebase:firebase-config:19.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
    

    Котлин + KTX

    implementation 'com.google.firebase:firebase-config-ktx:19.2.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
    

Получить одноэлементный объект 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. Определите набор имен параметров и значений параметров по умолчанию, используя объект Map или файл ресурсов XML, хранящийся в папке res/xml вашего приложения. Пример приложения для быстрого запуска Remote Config использует XML-файл для определения имен и значений параметров по умолчанию.
  2. Добавьте эти значения в объект Remote 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 Remote Config , вы можете создавать новые значения по умолчанию на стороне сервера, которые переопределяют значения в приложении в соответствии с желаемой условной логикой или таргетингом на пользователя. В этом разделе описаны шаги консоли Firebase для создания этих значений.

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

Получение и активация значений

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

    В случаях, когда вы хотите получить и активировать значения за один вызов, вы можете использовать fetchAndActivate() чтобы получить значения из серверной части Remote 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()
            }

Поскольку эти обновленные значения параметров влияют на поведение и внешний вид вашего приложения, вы должны активировать полученные значения в то время, которое обеспечивает удобство работы для вашего пользователя, например, когда пользователь в следующий раз откроет ваше приложение. См. Раздел Стратегии загрузки Remote 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) .

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

Если вы еще этого не сделали, изучите варианты использования Remote Config и ознакомьтесь с некоторыми ключевыми концепциями и документацией по расширенным стратегиям, в том числе: