Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Primeiros passos com o Configuração remota do Firebase

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.


Você pode usar o Firebase Remote Config para definir parâmetros em seu aplicativo e atualizar seus valores na nuvem, permitindo que você modifique a aparência e o comportamento de seu aplicativo sem distribuir uma atualização de aplicativo. Este guia orienta você pelas etapas para começar e fornece alguns códigos de amostra, todos disponíveis para clonar ou baixar no repositório GitHub firebase/quickstart-android .

Etapa 1: adicionar o Firebase e o SDK do Remote Config ao seu aplicativo

  1. Se ainda não o fez, adicione o Firebase ao seu projeto Android .

  2. Para Configuração remota, o Google Analytics é necessário para o direcionamento condicional de instâncias de aplicativos para propriedades e públicos do usuário. Certifique-se de habilitar o Google Analytics em seu projeto.

  3. No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ), adicione a dependência para a biblioteca Remote Config Android. Recomendamos usar o Firebase Android BoM para controlar o controle de versão da biblioteca.

    Além disso, como parte da configuração do Analytics, você precisa adicionar o SDK do Firebase para Google Analytics ao seu aplicativo.

    Java

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

    Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

    (Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

    Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

    Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

    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.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.2.0'
    }
    

    Kotlin+KTX

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

    Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

    (Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

    Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

    Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

    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-ktx:21.2.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
    }
    

Etapa 2: obter o objeto singleton do Configuração remota

Obtenha uma instância do objeto Remote Config e defina o intervalo mínimo de busca para permitir atualizações frequentes:

Java

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

Kotlin+KTX

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

O objeto singleton é usado para armazenar valores de parâmetros padrão no aplicativo, buscar valores de parâmetros atualizados do back-end e controlar quando os valores buscados são disponibilizados para seu aplicativo.

Durante o desenvolvimento, é recomendável definir um intervalo de busca mínimo relativamente baixo. Consulte Limitação para obter mais informações.

Etapa 3: definir valores de parâmetro padrão no aplicativo

Você pode definir valores de parâmetro padrão no aplicativo no objeto Remote Config, para que seu aplicativo se comporte como pretendido antes de se conectar ao back-end do Remote Config e para que os valores padrão estejam disponíveis se nenhum for definido no back-end.

  1. Defina um conjunto de nomes de parâmetros e valores de parâmetros padrão usando um objeto Map ou um arquivo de recurso XML armazenado na pasta res/xml do seu aplicativo. O aplicativo de exemplo de início rápido do Remote Config usa um arquivo XML para definir nomes e valores de parâmetro padrão.

    Se você já configurou os valores dos parâmetros de back-end do Remote Config, pode baixar um arquivo XML gerado que inclui todos os valores padrão e salvá-lo no diretório res/xml do seu aplicativo:

    DESCANSO

    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
    

    Console do Firebase

    1. Na guia Parâmetros , abra o menu e selecione Baixar valores padrão .

    2. Quando solicitado, ative .xml para Android e clique em Baixar arquivo .

  2. Adicione esses valores ao objeto Remote Config usando setDefaultsAsync(int) , conforme mostrado:

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

    Kotlin+KTX

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Etapa 4: obter valores de parâmetro para usar em seu aplicativo

Agora você pode obter valores de parâmetro do objeto Remote Config. Se você definir valores no back-end, buscá-los e ativá-los, esses valores estarão disponíveis para seu aplicativo. Caso contrário, você obterá os valores de parâmetro no aplicativo configurados usando setDefaultsAsync(int) . Para obter esses valores, chame o método listado abaixo que mapeia para o tipo de dados esperado pelo seu aplicativo, fornecendo a chave do parâmetro como argumento:

Etapa 5: definir valores de parâmetro no back-end do Configuração remota

Usando o Firebase console ou as APIs de back-end do Remote Config , você pode criar novos valores padrão do lado do servidor que substituem os valores no aplicativo de acordo com a lógica condicional desejada ou o direcionamento do usuário. Esta seção descreve as etapas do Firebase console para criar esses valores.

  1. No console do Firebase , abra seu projeto.
  2. Selecione Remote Config no menu para visualizar o painel Remote Config.
  3. Defina parâmetros com os mesmos nomes dos parâmetros que você definiu em seu aplicativo. Para cada parâmetro, você pode definir um valor padrão (que eventualmente substituirá o valor padrão correspondente no aplicativo) e também pode definir valores condicionais. Para saber mais, consulte Parâmetros e condições do Remote Config .

Etapa 6: buscar e ativar valores

  1. Para buscar valores de parâmetros do back-end do Remote Config, chame o método fetch() . Quaisquer valores que você definir no back-end são buscados e armazenados no objeto Remote Config.
  2. Para disponibilizar os valores de parâmetro buscados para seu aplicativo, chame o método activate() .

    Para casos em que você deseja buscar e ativar valores em uma chamada, você pode usar uma solicitação fetchAndActivate() para buscar valores do back-end do Remote Config e disponibilizá-los para o aplicativo:

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

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

Como esses valores de parâmetro atualizados afetam o comportamento e a aparência de seu aplicativo, você deve ativar os valores buscados em um momento que garanta uma experiência tranquila para o usuário, como na próxima vez que o usuário abrir seu aplicativo. Consulte Estratégias de carregamento do Remote Config para obter mais informações e exemplos.

Estrangulamento

Se um aplicativo buscar muitas vezes em um curto período de tempo, as chamadas de busca serão limitadas e o SDK retornará FirebaseRemoteConfigFetchThrottledException . Antes da versão 17.0.0 do SDK, o limite era de 5 solicitações de busca em uma janela de 60 minutos (as versões mais recentes têm limites mais permissivos).

Durante o desenvolvimento do aplicativo, você pode querer buscar e ativar as configurações com muita frequência (muitas vezes por hora) para permitir iterações rápidas à medida que desenvolve e testa seu aplicativo. Para acomodar uma iteração rápida em um projeto com até 10 desenvolvedores, você pode definir temporariamente um objeto FirebaseRemoteConfigSettings com um intervalo de busca mínimo baixo ( setMinimumFetchIntervalInSeconds ) em seu aplicativo.

O intervalo de busca mínimo padrão para configuração remota é de 12 horas, o que significa que as configurações não serão buscadas no back-end mais de uma vez em uma janela de 12 horas, independentemente de quantas chamadas de busca forem realmente feitas. Especificamente, o intervalo mínimo de busca é determinado na seguinte ordem:

  1. O parâmetro em fetch(long)
  2. O parâmetro em FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. O valor padrão de 12 horas

Para definir o intervalo mínimo de busca para um valor personalizado, use FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Next steps

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: