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

Comience con Firebase Remote Config

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.


Puede usar Firebase Remote Config para definir parámetros en su aplicación y actualizar sus valores en la nube, lo que le permite modificar la apariencia y el comportamiento de su aplicación sin distribuir una actualización de la aplicación. Esta guía lo guía a través de los pasos para comenzar y proporciona un código de muestra, todo el cual está disponible para clonar o descargar desde el repositorio de GitHub de firebase/quickstart-android .

Paso 1: Agregue Firebase y el SDK de Remote Config a su aplicación

  1. Si aún no lo ha hecho, agregue Firebase a su proyecto de Android .

  2. Para Remote Config, se requiere Google Analytics para la orientación condicional de las instancias de la aplicación a las propiedades y audiencias de los usuarios. Asegúrese de habilitar Google Analytics en su proyecto.

  3. En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle ), agrega la dependencia para la biblioteca de Android Remote Config. Recomendamos usar Firebase Android BoM para controlar el control de versiones de la biblioteca.

    Además, como parte de la configuración de Analytics, debe agregar el SDK de Firebase para Google Analytics a su aplicación.

    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'
    }
    

    Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.

    (Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM

    Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

    Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.

    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'
    }
    

    Al usar Firebase Android BoM , su aplicación siempre usará versiones compatibles de las bibliotecas de Firebase Android.

    (Alternativa) Agregar dependencias de la biblioteca de Firebase sin usar el BoM

    Si elige no usar Firebase BoM, debe especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

    Tenga en cuenta que si usa varias bibliotecas de Firebase en su aplicación, le recomendamos enfáticamente que use la lista de materiales para administrar las versiones de la biblioteca, lo que garantiza que todas las versiones sean compatibles.

    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'
    }
    

Paso 2: Obtener el objeto singleton de Remote Config

Obtenga una instancia de objeto de Remote Config y establezca el intervalo de recuperación mínimo para permitir actualizaciones frecuentes:

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)

El objeto singleton se usa para almacenar valores de parámetros predeterminados en la aplicación, obtener valores de parámetros actualizados desde el backend y controlar cuándo los valores obtenidos están disponibles para su aplicación.

Durante el desarrollo, se recomienda establecer un intervalo de recuperación mínimo relativamente bajo. Consulte Limitación para obtener más información.

Paso 3: establecer valores de parámetros predeterminados en la aplicación

Puede establecer valores de parámetros predeterminados en la aplicación en el objeto de Remote Config, para que su aplicación se comporte según lo previsto antes de conectarse al backend de Remote Config, y para que los valores predeterminados estén disponibles si no se establece ninguno en el backend.

  1. Defina un conjunto de nombres de parámetros y valores de parámetros predeterminados mediante un objeto Map o un archivo de recursos XML almacenado en la carpeta res/xml de su aplicación. La aplicación de muestra de inicio rápido de Remote Config usa un archivo XML para definir nombres y valores de parámetros predeterminados.

    Si ya configuró los valores de los parámetros de back-end de Remote Config, puede descargar un archivo XML generado que incluye todos los valores predeterminados y guardarlo en el directorio res/xml de su aplicación:

    DESCANSAR

    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
    

    consola base de fuego

    1. En la pestaña Parámetros , abra el menú y seleccione Descargar valores predeterminados .

    2. Cuando se le solicite, habilite .xml para Android , luego haga clic en Descargar archivo .

  2. Agrega estos valores al objeto de Remote Config usando setDefaultsAsync(int) , como se muestra:

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

    Kotlin+KTX

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Paso 4: obtenga valores de parámetros para usar en su aplicación

Ahora puede obtener valores de parámetros del objeto Remote Config. Si establece valores en el backend, los obtiene y luego los activa, esos valores están disponibles para su aplicación. De lo contrario, obtendrá los valores de los parámetros en la aplicación configurados mediante setDefaultsAsync(int) . Para obtener estos valores, llame al método que se indica a continuación que se asigna al tipo de datos esperado por su aplicación, proporcionando la clave de parámetro como argumento:

Paso 5: establezca los valores de los parámetros en el backend de Remote Config

Con Firebase console o las API de backend de Remote Config , puede crear nuevos valores predeterminados del lado del servidor que anulan los valores en la aplicación de acuerdo con la lógica condicional deseada o la orientación del usuario. En esta sección, se describen los pasos de Firebase console para crear estos valores.

  1. En la consola de Firebase , abre tu proyecto.
  2. Seleccione Configuración remota en el menú para ver el panel de configuración remota.
  3. Defina parámetros con los mismos nombres que los parámetros que definió en su aplicación. Para cada parámetro, puede establecer un valor predeterminado (que eventualmente anulará el valor predeterminado correspondiente en la aplicación), y también puede establecer valores condicionales. Para obtener más información, consulte Parámetros y condiciones de configuración remota .

Paso 6: Obtener y activar valores

  1. Para obtener valores de parámetros del backend de Remote Config, llama al método fetch() . Todos los valores que establezca en el backend se recuperan y almacenan en el objeto de configuración remota.
  2. Para que los valores de los parámetros obtenidos estén disponibles para su aplicación, llame al método activate() .

    Para los casos en los que desea obtener y activar valores en una sola llamada, puede usar una solicitud fetchAndActivate() para obtener valores del backend de Remote Config y ponerlos a disposición de la aplicación:

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

Debido a que estos valores de parámetros actualizados afectan el comportamiento y la apariencia de su aplicación, debe activar los valores obtenidos en un momento que garantice una experiencia fluida para su usuario, como la próxima vez que el usuario abra su aplicación. Consulte Estrategias de carga de Remote Config para obtener más información y ejemplos.

estrangulamiento

Si una aplicación recupera demasiadas veces en un período de tiempo corto, las llamadas de recuperación se limitan y el SDK devuelve FirebaseRemoteConfigFetchThrottledException . Antes de la versión 17.0.0 del SDK, el límite era de 5 solicitudes de obtención en un período de 60 minutos (las versiones más recientes tienen límites más permisivos).

Durante el desarrollo de la aplicación, es posible que desee buscar y activar configuraciones con mucha frecuencia (muchas veces por hora) para permitirle iterar rápidamente a medida que desarrolla y prueba su aplicación. Para adaptarse a la iteración rápida en un proyecto con hasta 10 desarrolladores, puede configurar temporalmente un objeto FirebaseRemoteConfigSettings con un intervalo de recuperación mínimo bajo ( setMinimumFetchIntervalInSeconds ) en su aplicación.

El intervalo de recuperación mínimo predeterminado para Remote Config es de 12 horas, lo que significa que las configuraciones no se recuperarán del backend más de una vez en un período de 12 horas, independientemente de cuántas llamadas de recuperación se realicen realmente. Específicamente, el intervalo de recuperación mínimo se determina en el siguiente orden:

  1. El parámetro en fetch(long)
  2. El parámetro en FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. El valor predeterminado de 12 horas

Para establecer el intervalo de recuperación mínimo en un 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: