Beginnen Sie mit Firebase Remote Config


Sie können Firebase Remote Config verwenden, um Parameter in Ihrer App zu definieren und ihre Werte in der Cloud zu aktualisieren, sodass Sie das Erscheinungsbild und Verhalten Ihrer App ändern können, ohne ein App-Update zu verteilen. Dieser Leitfaden führt Sie durch die Schritte für den Einstieg und stellt einige Beispielcodes bereit, die alle zum Klonen oder Herunterladen aus dem GitHub-Repository firebase/quickstart-js verfügbar sind.

Schritt 1: Fügen Sie das Remote Config SDK hinzu und initialisieren Sie es

  1. Falls noch nicht geschehen, installieren Sie das Firebase JS SDK und initialisieren Sie Firebase .

  2. Fügen Sie das Remote Config JS SDK hinzu und initialisieren Sie Remote Config:

Modulare Web-API

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

Web-Namespace-API

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

Dieses Objekt wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte vom Remote Config-Backend abzurufen und zu steuern, wann abgerufene Werte Ihrer App zur Verfügung gestellt werden.

Schritt 2: Legen Sie das Mindestabrufintervall fest

Während der Entwicklung wird empfohlen, ein relativ niedriges Mindestabrufintervall festzulegen. Weitere Informationen finden Sie unter Drosselung .

Web modular API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Web namespaced API

remoteConfig.settings.minimumFetchIntervalMillis = 3600000;

Schritt 3: In-App-Standardparameterwerte festlegen

Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, sodass sich Ihre App wie vorgesehen verhält, bevor sie eine Verbindung zum Remote Config-Backend herstellt, und sodass Standardwerte verfügbar sind, wenn im Backend keine festgelegt sind.

Web modular API

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

Web namespaced API

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

Wenn Sie bereits Parameterwerte für das Remote Config-Backend konfiguriert haben, können Sie eine generierte JSON-Datei herunterladen, die alle Standardwerte enthält, und sie in Ihr App-Bundle aufnehmen:

AUSRUHEN

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

Firebase-Konsole

  1. Öffnen Sie auf der Registerkarte „Parameter“ das Menü und wählen Sie „Standardwerte herunterladen“ aus.
  2. Wenn Sie dazu aufgefordert werden, aktivieren Sie .json für das Web und klicken Sie dann auf Datei herunterladen .

Die folgenden Beispiele zeigen zwei verschiedene Möglichkeiten, wie Sie Standardwerte in Ihre App importieren und festlegen können. Das erste Beispiel verwendet fetch , wodurch eine HTTP-Anfrage an die in Ihrem App-Bundle enthaltene Standarddatei gestellt wird:


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

Das nächste Beispiel verwendet require , wodurch die Werte zur Erstellungszeit in Ihre App kompiliert werden:

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

Schritt 4: Rufen Sie Parameterwerte zur Verwendung in Ihrer App ab

Jetzt können Sie Parameterwerte vom Remote Config-Objekt abrufen. Wenn Sie später im Backend Werte festlegen, diese abrufen und dann aktivieren, stehen diese Werte Ihrer App zur Verfügung. Um diese Werte abzurufen, rufen Sie die Methode getValue() auf und geben Sie den Parameterschlüssel als Argument an.

Web modular API

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

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

Web namespaced API

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

Schritt 5: Parameterwerte einstellen

Mit der Firebase-Konsole oder den Remote Config-Backend-APIs können Sie neue serverseitige Standardwerte erstellen, die die In-App-Werte entsprechend Ihrer gewünschten bedingten Logik oder Benutzerausrichtung überschreiben. In diesem Abschnitt werden Sie durch die Schritte der Firebase-Konsole zum Erstellen dieser Werte geführt.

  1. Öffnen Sie in der Firebase-Konsole Ihr Projekt.
  2. Wählen Sie „Remote-Konfiguration“ aus dem Menü, um das Remote-Konfigurations-Dashboard anzuzeigen.
  3. Definieren Sie Parameter mit denselben Namen wie die Parameter, die Sie in Ihrer App definiert haben. Für jeden Parameter können Sie einen Standardwert festlegen (der letztendlich den In-App-Standardwert überschreibt) und Sie können auch bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote-Konfigurationsparameter und -Bedingungen .

Schritt 6: Werte abrufen und aktivieren

  1. Um Parameterwerte vom Remote Config-Backend abzurufen, rufen Sie die Methode fetchConfig() auf. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt zwischengespeichert.
  2. Um abgerufene Parameterwerte für Ihre App verfügbar zu machen, rufen Sie die Methode activate() auf.

Für Fälle, in denen Sie Werte in einem Aufruf abrufen und aktivieren möchten, verwenden Sie fetchAndActivate() wie in diesem Beispiel gezeigt:

Web modular API

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

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

Web namespaced API

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

Da sich diese aktualisierten Parameterwerte auf das Verhalten und das Erscheinungsbild Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der ein reibungsloses Erlebnis für Ihren Benutzer gewährleistet, z. B. wenn der Benutzer Ihre App das nächste Mal öffnet. Weitere Informationen und Beispiele finden Sie unter Ladestrategien für Remote-Konfigurationen .

Drosselung

Wenn eine App in einem kurzen Zeitraum zu oft Abrufe durchführt, werden Abrufaufrufe möglicherweise gedrosselt. In solchen Fällen löst das SDK einen FETCH_THROTTLE Fehler aus. Es wird empfohlen, diesen Fehler abzufangen und es im exponentiellen Backoff-Modus erneut zu versuchen, wobei längere Intervalle zwischen nachfolgenden Abrufanforderungen abgewartet werden.

Während der App-Entwicklung möchten Sie den Cache möglicherweise sehr häufig (mehrmals pro Stunde) aktualisieren, damit Sie beim Entwickeln und Testen Ihrer App schnell iterieren können. Um eine schnelle Iteration eines Projekts mit zahlreichen Entwicklern zu ermöglichen, können Sie Ihrer App vorübergehend eine Eigenschaft mit einem niedrigen Mindestabrufintervall ( Settings.minimumFetchIntervalMillis ) hinzufügen.

Das standardmäßige und empfohlene Produktionsabrufintervall für Remote Config beträgt 12 Stunden, was bedeutet, dass Konfigurationen nicht mehr als einmal in einem 12-Stunden-Fenster vom Backend abgerufen werden, unabhängig davon, wie viele Abrufaufrufe tatsächlich durchgeführt werden. Konkret wird das minimale Abrufintervall in der folgenden Reihenfolge bestimmt:

  1. Der Parameter in Settings.minimumFetchIntervalMillis .
  2. Der Standardwert beträgt 12 Stunden.

Nächste Schritte

Wenn Sie es noch nicht getan haben, erkunden Sie die Remote -Konfigurations -Anwendungsfälle und sehen Sie sich einige der wichtigsten Konzepte und erweiterten Strategien an, darunter: