Comience con Firebase Remote Config


Puedes usar Firebase Remote Config para definir parámetros en tu aplicación y actualizar sus valores en la nube, lo que te permite modificar la apariencia y el comportamiento de tu 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 código de muestra, todo el cual está disponible para clonar o descargar desde el repositorio de GitHub firebase/quickstart-js .

Paso 1: Agregar e inicializar el SDK de Remote Config

  1. Si aún no lo has hecho, instala el SDK de Firebase JS e inicializa Firebase .

  2. Agregue el SDK JS de Remote Config e inicialice Remote Config:

API modular web

import { initializeApp } from "firebase/app";
import { getRemoteConfig } from "firebase/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = getRemoteConfig(app);

API con espacio de nombres web

import firebase from "firebase/compat/app";
import "firebase/compat/remote-config";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Remote Config and get a reference to the service
const remoteConfig = firebase.remoteConfig();

Este objeto se utiliza para almacenar valores de parámetros predeterminados en la aplicación, recuperar valores de parámetros actualizados desde el backend de Remote Config y controlar cuándo los valores recuperados están disponibles para su aplicación.

Paso 2: establecer el intervalo de recuperación mínimo

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

Web modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web namespaced API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

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, de modo 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 hay ninguno configurado en el backend.

Web modular API

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Web namespaced API

remoteConfig.defaultConfig = {
  "welcome_message": "Welcome"
};

Si ya configuró los valores de los parámetros del backend de Remote Config, puede descargar un archivo JSON generado que incluya todos los valores predeterminados e incluirlo en su paquete de 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=JSON -o remote_config_defaults.json

Consola de base de fuego

  1. En la pestaña Parámetros , abra el menú y seleccione Descargar valores predeterminados .
  2. Cuando se le solicite, habilite .json para web y luego haga clic en Descargar archivo .

Los siguientes ejemplos muestran dos formas diferentes de importar y establecer valores predeterminados en su aplicación. El primer ejemplo utiliza fetch , que realizará una solicitud HTTP al archivo predeterminado incluido en tu paquete de aplicación:


  const rcDefaultsFile = await fetch('remote_config_defaults.json');
  const rcDefaultsJson = await rcDefaultsFile.json();
  remoteConfig.defaultConfig = rcDefaultsJson;
  

El siguiente ejemplo utiliza require , que compila los valores en su aplicación en el momento de la compilación:

  let rcDefaults = require('./remote_config_defaults.json');
  remoteConfig.defaultConfig = rcDefaults;

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 luego establece valores en el backend, los recupera y luego los activa, esos valores estarán disponibles para su aplicación. Para obtener estos valores, llame al método getValue() y proporcione la clave del parámetro como argumento.

Web modular API

import { getValue } from "firebase/remote-config";

const val = getValue(remoteConfig, "welcome_messsage");

Web namespaced API

const val = remoteConfig.getValue("welcome_messsage");

Paso 5: establecer los valores de los parámetros

Con la consola Firebase o las API de backend de Remote Config , puedes crear nuevos valores predeterminados del lado del servidor que anulan los valores en la aplicación según la lógica condicional o la orientación del usuario que desees. Esta sección lo guía a través de los pasos de Firebase console para crear estos valores.

  1. En Firebase console , abre tu proyecto.
  2. Seleccione Remote Config en el menú para ver el panel de Remote Config.
  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 en la aplicación) y también puede establecer valores condicionales. Para obtener más información, consulte Parámetros y condiciones de Remote Config .

Paso 6: buscar y activar valores

  1. Para recuperar valores de parámetros del backend de Remote Config, llame al método fetchConfig() . Cualquier valor que establezca en el backend se recupera y se almacena en caché en el objeto de Remote Config.
  2. Para que los valores de los parámetros recuperados estén disponibles para su aplicación, llame al método activate() .

Para los casos en los que desee recuperar y activar valores en una sola llamada, utilice fetchAndActivate() como se muestra en este ejemplo:

Web modular API

import { fetchAndActivate } from "firebase/remote-config";

fetchAndActivate(remoteConfig)
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Web namespaced API

remoteConfig.fetchAndActivate()
  .then(() => {
    // ...
  })
  .catch((err) => {
    // ...
  });

Debido a que estos valores de parámetros actualizados afectan el comportamiento y la apariencia de su aplicación, debe activar los valores recuperados 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 se recupera demasiadas veces en un corto período de tiempo, es posible que se limiten las llamadas de recuperación. En tales casos, el SDK genera un error FETCH_THROTTLE . Se recomienda detectar este error y volver a intentarlo en modo de retroceso exponencial, esperando intervalos más largos entre solicitudes de recuperación posteriores.

Durante el desarrollo de la aplicación, es posible que desee actualizar el caché con mucha frecuencia (muchas veces por hora) para poder iterar rápidamente a medida que desarrolla y prueba su aplicación. Para permitir una iteración rápida en un proyecto con numerosos desarrolladores, puede agregar temporalmente una propiedad con un intervalo de recuperación mínimo bajo ( Settings.minimumFetchIntervalMillis ) en su aplicación.

El intervalo de recuperación de producción predeterminado y recomendado 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 Settings.minimumFetchIntervalMillis .
  2. El valor predeterminado de 12 horas.

Próximos pasos

Si aún no lo ha hecho, explore los casos de uso de Remote Config y eche un vistazo a algunos de los conceptos clave y la documentación de estrategias avanzadas, que incluyen: