Mit Firebase Remote Config können Sie Parameter in Ihrer App definieren und ihre Werte in der Cloud aktualisieren. So können Sie die Darstellung und das Verhalten Ihrer App ändern, ohne ein App-Update zu verteilen. In dieser Anleitung werden die ersten Schritte beschrieben und Beispielcode bereitgestellt, der im GitHub-Repository firebase/quickstart-js geklont oder heruntergeladen werden kann.
Schritt 1: Remote Config SDK hinzufügen und initialisieren
Falls noch nicht geschehen, installieren Sie das Firebase JS SDK und initialisieren Sie Firebase.
Fügen Sie das Remote Config JS SDK hinzu und initialisieren Sie Remote Config:
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);
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();
Mit diesem Objekt werden Standardparameterwerte in der App gespeichert, aktualisierte Parameterwerte aus dem Remote Config-Backend abgerufen und gesteuert, wann abgerufene Werte für Ihre App verfügbar gemacht werden.
Schritt 2: Mindestabrufintervall festlegen
Während der Entwicklung wird empfohlen, ein relativ niedriges Mindestintervall für den Abruf festzulegen. Weitere Informationen finden Sie unter Drosselung.
Web
// The default and recommended production fetch interval for Remote Config is 12 hours remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Web
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Schritt 3: In-App-Standardparameterwerte festlegen
Sie können Standardparameterwerte für In-App-Konfigurationen im Remote Config-Objekt festlegen, damit sich Ihre App wie vorgesehen verhält, bevor sie eine Verbindung zum Remote Config-Backend herstellt. Außerdem sind so Standardwerte verfügbar, wenn keine im Backend festgelegt sind.
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Web
remoteConfig.defaultConfig = { "welcome_message": "Welcome" };
Wenn Sie bereits Remote Config-Backend-Parameterwerte konfiguriert haben, können Sie eine generierte JSON-Datei mit allen Standardwerten herunterladen und in Ihr App-Bundle einfügen:
REST
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 Console
- Öffnen Sie auf dem Tab Parameter das Menü und wählen Sie Standardwerte herunterladen aus.
- Aktivieren Sie bei Aufforderung .json für das Web und klicken Sie dann auf Datei herunterladen.
Die folgenden Beispiele zeigen zwei verschiedene Möglichkeiten, Standardwerte in Ihre App zu importieren und festzulegen. Im ersten Beispiel wird fetch
verwendet. Dadurch wird eine HTTP-Anfrage an die Standarddatei gesendet, die in Ihrem App-Bundle enthalten ist:
const rcDefaultsFile = await fetch('remote_config_defaults.json'); const rcDefaultsJson = await rcDefaultsFile.json(); remoteConfig.defaultConfig = rcDefaultsJson;
Im nächsten Beispiel wird require
verwendet, wodurch die Werte zur Build-Zeit in Ihre App kompiliert werden:
let rcDefaults = require('./remote_config_defaults.json'); remoteConfig.defaultConfig = rcDefaults;
Schritt 4: Parameterwerte für die Verwendung in Ihrer App abrufen
Sie können jetzt Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie später Werte im Backend festlegen, abrufen und dann aktivieren, sind diese Werte für Ihre App verfügbar.Rufen Sie dazu die Methode getValue()
auf und geben Sie den Parameterschlüssel als Argument an.
Web
import { getValue } from "firebase/remote-config"; const val = getValue(remoteConfig, "welcome_messsage");
Web
const val = remoteConfig.getValue("welcome_messsage");
Schritt 5: Parameterwerte festlegen
Über die Firebase Console oder die Remote Config-Backend-APIs können Sie neue serverseitige Standardwerte erstellen, die die In-App-Werte entsprechend der gewünschten bedingten Logik oder des Nutzer-Targetings überschreiben. In diesem Abschnitt werden die Schritte in der Firebase-Konsole zum Erstellen dieser Werte beschrieben.
- Öffnen Sie Ihr Projekt in der Firebase-Konsole.
- Wählen Sie im Menü Remote Config aus, um das Remote Config-Dashboard aufzurufen.
- 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 den Standardwert in der App überschreibt. Außerdem können Sie bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote Config-Parameter und ‑Bedingungen.
Wenn Sie benutzerdefinierte Signalbedingungen verwenden, definieren Sie die Attribute und ihre Werte. Im folgenden Beispiel wird gezeigt, wie eine benutzerdefinierte Signalbedingung definiert wird.
let customSignals = { "city": "Tokyo", "preferred_event_category": "sports" } setCustomSignals(config, customSignals);
Schritt 6: Werte abrufen und aktivieren
- Wenn Sie Parameterwerte aus dem Remote Config-Backend abrufen möchten, rufen Sie die Methode
fetchConfig()
auf. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt zwischengespeichert. - Damit abgerufene Parameterwerte für Ihre App verfügbar sind, rufen Sie die Methode
activate()
auf.
Wenn Sie Werte in einem Aufruf abrufen und aktivieren möchten, verwenden Sie fetchAndActivate()
, wie in diesem Beispiel gezeigt:
Web
import { fetchAndActivate } from "firebase/remote-config"; fetchAndActivate(remoteConfig) .then(() => { // ... }) .catch((err) => { // ... });
Web
remoteConfig.fetchAndActivate() .then(() => { // ... }) .catch((err) => { // ... });
Da sich diese aktualisierten Parameterwerte auf das Verhalten und Erscheinungsbild Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der für eine reibungslose Nutzererfahrung sorgt, z. B. beim nächsten Öffnen der App durch den Nutzer. Weitere Informationen und Beispiele finden Sie unter Remote Config-Ladestrategien.
Drosselung
Wenn eine App innerhalb eines kurzen Zeitraums zu viele Abrufe durchführt, werden die Abrufe möglicherweise gedrosselt. In solchen Fällen gibt das SDK den Fehler FETCH_THROTTLE
aus.
Es wird empfohlen, diesen Fehler abzufangen und den Vorgang im exponentiellen Backoff-Modus zu wiederholen. Warten Sie dabei längere Intervalle zwischen den einzelnen Abrufanfragen.
Während der App-Entwicklung möchten Sie den Cache möglicherweise sehr häufig (mehrmals pro Stunde) aktualisieren, um die Entwicklung und das Testen Ihrer App zu beschleunigen. Um die schnelle Iteration bei einem Projekt mit zahlreichen Entwicklern zu ermöglichen, können Sie Ihrer App vorübergehend eine Property mit einem niedrigen Mindestabrufintervall (Settings.minimumFetchIntervalMillis
) hinzufügen.
Das standardmäßige und empfohlene Abrufintervall für die Produktion für Remote Config beträgt 12 Stunden. Das bedeutet, dass Konfigurationen unabhängig davon, wie viele Abrufe tatsächlich erfolgen, nicht öfter als einmal innerhalb von 12 Stunden vom Backend abgerufen werden. Das minimale Abrufintervall wird in der folgenden Reihenfolge bestimmt:
- Der Parameter in
Settings.minimumFetchIntervalMillis
. - Der Standardwert ist 12 Stunden.
Nächste Schritte
Falls Sie das noch nicht getan haben, sehen Sie sich die Remote Config Anwendungsfälle an und lesen Sie die Dokumentation zu einigen der wichtigsten Konzepte und erweiterten Strategien, darunter: