Remote Config-Clientvorlagen und ‑Versionsverwaltung verwalten

Vorlagentyp auswählen: Clientvorlagen Servervorlagen


Remote Config-Vorlagen sind Sätze von JSON-formatierten Parametern und Bedingungen, die für Ihr Firebase-Projekt erstellt wurden. Clientvorlagen stellen Konfigurationen für App-Instanzen bereit, die die Firebase-Client-SDKs für Remote Config implementieren, einschließlich Apple-, Android-, Web-, Flutter-, Unity- und C++-Apps.

Sie können die Firebase-Konsole verwenden, um Ihre Clientvorlage zu ändern und zu verwalten. Gehen Sie zu DevOps & Engagement > Remote Config, um den Inhalt der Vorlage im grafischen Format auf der Seite Parameter und der Seite Bedingungen anzusehen.

Sie können auch die Remote Config REST API und Admin SDK oder die Firebase CLI verwenden, um Ihre Clientvorlage zu ändern und zu verwalten.

Hier sehen Sie ein Beispiel für eine Clientvorlagendatei:

{
  "conditions": [
    {
      "name": "ios",
      "expression": "device.os == 'ios'"
    }
  ],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "ios": {
          "value": "Welcome to this sample iOS app"
        }
      }
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      }
    },
    "header_text": {
      "defaultValue": {
        "useInAppDefault": true
      }
    }
  },
  "version": {
    "versionNumber": "28",
    "updateTime": "2020-05-14T18:39:38.994Z",
    "updateUser": {
      "email": "user@google.com"
    },
    "updateOrigin": "CONSOLE",
    "updateType": "INCREMENTAL_UPDATE"
  }
}

Sie können diese Aufgaben zur Versionsverwaltung in der Firebase-Konsole ausführen (DevOps & Engagement > Remote Config):

  • Alle gespeicherten Vorlagenversionen auflisten
  • Bestimmte Version abrufen
  • Rollback zu einer bestimmten Clientversion durchführen
  • Löschen Sie Remote Config Vorlagen auf der Seite Änderungsverlauf.

Sie können Vorlagen auch mithilfe der Firebase-Befehlszeile und der Remote Config-Backend-APIs auflisten, abrufen und zurücksetzen.

Es gibt ein Limit von insgesamt 300 gespeicherten Versionen pro Vorlagentyp (300 Clientvorlagen und 300 Servervorlagen). Dazu gehören auch gespeicherte Versionsnummern für gelöschte Vorlagen. Wenn Sie während der Lebensdauer eines Projekts mehr als 300 Vorlagenversionen pro Vorlagentyp veröffentlichen, werden die frühesten Versionen gelöscht, sodass maximal 300 Versionen dieses Typs beibehalten werden.

Jedes Mal, wenn Sie Parameter aktualisieren, erstellt Remote Config eine neue versionierte Remote Config-Vorlage und speichert die vorherige Vorlage als Version, die Sie bei Bedarf abrufen oder auf die Sie zurücksetzen können. Die Versionsnummern werden sequenziell ab dem von Remote Config gespeicherten Anfangswert erhöht. Alle Vorlagen enthalten wie gezeigt ein version-Feld mit Metadaten zu dieser spezifischen Version.

Sie können Remote Config-Vorlagen nach Bedarf in der Firebase-Konsole auf der Seite DevOps & Engagement > Remote Config > Änderungsverlauf löschen.

Remote Config-Vorlagenversionen verwalten

In diesem Abschnitt wird beschrieben, wie Sie Versionen Ihrer Remote Config-Vorlage verwalten.

Weitere Informationen zum programmatischen Erstellen, Ändern und Speichern von Vorlagen finden Sie unter Remote Config programmatisch ändern.

Alle gespeicherten Versionen der Vorlage Remote Config auflisten

Sie können eine Liste aller gespeicherten Versionen der Vorlage Remote Config abrufen. Dazu

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Parameter auf.

  2. Wählen Sie oben rechts das Uhrsymbol aus.

    Dadurch wird die Seite Änderungsverlauf geöffnet, auf der alle gespeicherten Vorlagenversionen in einem Listenmenü auf der rechten Seite aufgeführt sind.

    Die für jede gespeicherte Version angezeigten Details enthalten Informationen darüber, ob die Änderungen von der Firebase-Konsole, der REST API, einem Rollback oder inkrementellen Änderungen durch ein erzwungenes Speichern der Vorlage stammen.

Firebase CLI

firebase remoteconfig:versions:list

Verwenden Sie die Option --limit, um die Anzahl der zurückgegebenen Versionen zu begrenzen. Übergeben Sie „0“, um alle Versionen abzurufen.

Node.js

function listAllVersions() {
admin.remoteConfig().listVersions()
.then((listVersionsResult) => {
  console.log("Successfully fetched the list of versions");
  listVersionsResult.versions.forEach((version) => {
    console.log('version', JSON.stringify(version));
  });
})
.catch((error) => {
  console.log(error);
});
}

Java

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:listVersions

Die Liste der Vorlagen enthält Metadaten für alle gespeicherten Versionen, einschließlich des Zeitpunkts der Aktualisierung, des Nutzers, der sie vorgenommen hat, und der Art und Weise, wie sie vorgenommen wurde. Hier ist ein Beispiel für ein Versionselement:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]
}

Bestimmte Version der Vorlage Remote Config abrufen

Sie können jede bestimmte gespeicherte Version der Remote Config-Vorlage abrufen. So rufen Sie eine gespeicherte Vorlagenversion ab:

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Änderungsverlauf auf.

  2. Standardmäßig wird auf der Seite die aktuell aktive Vorlage angezeigt. Wenn Sie eine andere Version aufrufen möchten, wählen Sie sie im Detailbereich rechts aus.

  3. Sie können sich einen detaillierten Vergleich der aktiven Vorlage mit einer anderen gespeicherten Version ansehen. Bewegen Sie dazu den Mauszeiger auf das Kontextmenü einer nicht ausgewählten Version und wählen Sie Mit ausgewählter Version vergleichen aus.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

Optional können Sie die Ausgabe mit -o, FILENAME in eine angegebene Datei schreiben.

Node.js

Übergeben Sie getTemplate ohne Argumente, um die aktuelle Version der Vorlage abzurufen, oder verwenden Sie getTemplateAtVersion, um eine bestimmte Version abzurufen.

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
.then((template) => {
console.log("Successfully fetched the template with ETag: " + template.etag);
})
.catch((error) => {
console.log(error);
});

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?version_number=6

Der URL-Parameter ?version_number ist nur für GET-Vorgänge gültig. Sie können ihn nicht verwenden, um Versionsnummern für Aktualisierungen anzugeben. Eine ähnliche GET-Anfrage ohne den Parameter ?version_number würde die aktuelle aktive Vorlage abrufen.

Rollback zu einer bestimmten gespeicherten Version der Vorlage Remote Config durchführen

Sie können ein Rollback zu jeder gespeicherten Version der Vorlage durchführen. So setzen Sie eine Vorlage zurück:

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Änderungsverlauf auf.

  2. Suchen Sie rechts oben auf der Seite nach der Optionsschaltfläche für frühere Vorlagenversionen, für die ein Rollback möglich ist.

  3. Klicken Sie darauf und bestätigen Sie dies nur, wenn Sie sicher sind, dass Sie ein Rollback auf diese Version durchführen und diese Werte sofort für alle Apps und Nutzer verwenden möchten.

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

Java

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

REST

Wenn Sie ein Rollback zu einer gespeicherten Remote Config-Vorlage ausführen möchten, senden Sie einen HTTP-POST-Request mit der benutzerdefinierten Methode :rollback und im Request-Text die spezifische Version, die angewendet werden soll. Beispiel:

curl --compressed -D headers -H "Authorization: Bearer token" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:rollback -d '{"version_number": 6}'

Die Antwort enthält den Inhalt der jetzt aktiven gespeicherten Vorlage mit den neuen Versionsmetadaten.

Beachten Sie, dass durch diesen Rollback-Vorgang eine neue nummerierte Version erstellt wird. Wenn Sie beispielsweise von Version 10 auf Version 6 zurücksetzen, wird eine neue Kopie von Version 6 erstellt, die sich vom Original nur dadurch unterscheidet, dass die Versionsnummer 11 lautet. Die ursprüngliche Version 6 wird weiterhin gespeichert, sofern sie nicht abgelaufen ist, und Version 11 wird zur aktiven Vorlage.

Remote Config-Vorlage löschen

Sie können Remote Config-Vorlagen über die Firebase-Konsole löschen. So löschen Sie eine Vorlage:

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Parameter auf.

  2. Klicken Sie auf Änderungsverlauf.

  3. Wechseln Sie zu der Vorlage, die Sie löschen möchten, klicken Sie auf Mehr und wählen Sie dann Löschen aus.

  4. Wenn Sie zur Bestätigung des Löschvorgangs aufgefordert werden, klicken Sie auf Löschen.

Remote Config-Vorlagen herunterladen und veröffentlichen

Laden Sie Remote Config-Vorlagen herunter und veröffentlichen Sie sie, um sie in Ihre Quellcodeverwaltung und Build-Systeme einzubinden, Konfigurationsupdates zu automatisieren und Parameter und Werte über mehrere Projekte hinweg synchron zu halten.

Sie können die derzeit aktive Remote Config-Vorlage programmatisch oder über die Firebase-Konsole herunterladen. Sie können die exportierte JSON-Datei dann aktualisieren und im selben Projekt oder in einem neuen oder vorhandenen Projekt veröffentlichen.

Angenommen, Sie haben mehrere Projekte, die verschiedene Phasen des Softwareentwicklungszyklus darstellen, z. B. Entwicklungs-, Test-, Staging- und Produktionsumgebungen. In diesem Fall können Sie eine vollständig getestete Vorlage aus Ihrer Staging-Umgebung in Ihre Produktionsumgebung hochstufen, indem Sie sie aus Ihrem Staging-Projekt herunterladen und in Ihrem Produktionsprojekt veröffentlichen.

Sie können diese Methode auch verwenden, um Konfigurationen von einem Projekt zu einem anderen zu migrieren oder ein neues Projekt mit Parametern und Werten aus einem bestehenden Projekt zu füllen.

Parameter und Parameterwerte, die speziell als Varianten in einem A/B Testing-Test erstellt wurden, sind nicht in exportierten Vorlagen enthalten.

So exportieren und importieren Sie Remote Config-Vorlagen:

  1. Laden Sie die aktuelle Remote Config-Vorlage herunter.
  2. Remote Config-Vorlage validieren
  3. Veröffentlichen Sie die Remote Config-Vorlage.

Aktuelle Remote Config-Vorlage herunterladen

Verwenden Sie den folgenden Befehl, um die aktive Remote Config-Vorlage im JSON-Format herunterzuladen:

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Parameter oder Bedingungen auf.

  2. Öffnen Sie das Menü und wählen Sie Aktuelle Konfigurationsdatei herunterladen aus.

  3. Klicken Sie bei Aufforderung auf Konfigurationsdatei herunterladen, wählen Sie den Speicherort für die Datei aus und klicken Sie dann auf Speichern.

Firebase CLI

firebase remoteconfig:get -o filename

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

Java

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

REST

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename

Mit diesem Befehl wird die JSON-Nutzlast in eine Datei und die Header (einschließlich des ETag) in eine separate headers-Datei ausgegeben.

Remote Config-Vorlage validieren

Sie können Ihre Vorlagenaktualisierungen vor der Veröffentlichung mit der Firebase Admin SDK oder der REST API validieren. Vorlagen werden auch validiert, wenn Sie versuchen, sie über die Firebase-Befehlszeile oder die Firebase-Konsole zu veröffentlichen.

Bei der Vorlagenvalidierung wird nach Fehlern wie doppelten Schlüsseln für Parameter und Bedingungen, ungültigen Bedingungsnamen oder nicht vorhandenen Bedingungen oder falsch formatierten ETags gesucht. Eine Anfrage, die mehr als die zulässige Anzahl von Schlüsseln (2.000) enthält, würde beispielsweise die Fehlermeldung Param count too large zurückgeben.

Node.js

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

Java

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

REST

Validieren Sie Vorlagenaktualisierungen, indem Sie den URL-Parameter ?validate_only=true an Ihre Veröffentlichungsanfrage anhängen:

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename

Wenn Ihre Vorlage erfolgreich validiert wurde, gibt der curl-Befehl die von Ihnen eingereichte JSON-Vorlage zurück. In der gespeicherten Datei headers finden Sie den HTTP/2-Status 200 und ein aktualisiertes ETag mit dem Suffix -0. Wenn Ihre Vorlage nicht validiert wurde, erhalten Sie den Validierungsfehler in der JSON-Antwort und Ihre headers-Datei enthält eine Antwort, die nicht 200 ist (und kein ETag).

Vorlage „Remote Config“ veröffentlichen

Nachdem Sie eine Vorlage heruntergeladen, die erforderlichen Änderungen am JSON-Inhalt vorgenommen und sie validiert haben, können Sie sie in einem Projekt veröffentlichen.

Wenn Sie eine Vorlage veröffentlichen, wird die gesamte vorhandene Konfigurationsvorlage durch die aktualisierte Datei ersetzt und die Vorlagenversion wird um eins erhöht. Da die gesamte Konfiguration ersetzt wird, wird ein Parameter, den Sie aus der JSON-Datei löschen und veröffentlichen, vom Server gelöscht und ist für Clients nicht mehr verfügbar.

Nach der Veröffentlichung sind Änderungen an Parametern und Werten sofort für Ihre Apps und Nutzer verfügbar. Bei Bedarf können Sie ein Rollback auf eine frühere Version durchführen.

Veröffentlichen Sie Ihre Vorlage mit den folgenden Befehlen:

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Parameter oder Bedingungen auf.

  2. Öffnen Sie das Menü und wählen Sie Aus Datei veröffentlichen aus.

  3. Wenn Sie dazu aufgefordert werden, klicken Sie auf Durchsuchen, rufen Sie die Remote Config-Datei auf, die Sie veröffentlichen möchten, wählen Sie sie aus und klicken Sie dann auf Auswählen.

  4. Firebase validiert die Datei. Wenn die Validierung erfolgreich ist, klicken Sie auf Veröffentlichen, um die Konfiguration sofort für Ihre Apps und Nutzer verfügbar zu machen.

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

Java

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

REST

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

Für diesen curl-Befehl können Sie den Inhalt mit dem Zeichen „@“ gefolgt vom Dateinamen angeben.

Remote Config-Personalisierungen und -Bedingungen sind in heruntergeladenen Vorlagen enthalten. Beachten Sie daher die folgenden Einschränkungen, wenn Sie versuchen, in einem anderen Projekt zu veröffentlichen:

  • Personalisierungen können nicht von einem Projekt in ein anderes importiert werden.

    Wenn Sie beispielsweise Personalisierungen in Ihrem Projekt aktiviert haben und eine Vorlage herunterladen und bearbeiten, können Sie sie im selben Projekt veröffentlichen. Sie können sie jedoch nicht in einem anderen Projekt veröffentlichen, es sei denn, Sie löschen die Personalisierungen aus der Vorlage.

  • Bedingungen können von Projekt zu Projekt importiert werden. Beachten Sie jedoch, dass alle spezifischen Bedingungswerte (z. B. App-IDs oder Zielgruppen) vor der Veröffentlichung im Zielprojekt vorhanden sein müssen.

    Wenn Sie beispielsweise einen Remote Config-Parameter haben, der eine Bedingung verwendet, die einen Plattformwert von iOS angibt, kann die Vorlage in einem anderen Projekt veröffentlicht werden, da die Plattformwerte für alle Projekte gleich sind. Wenn sie jedoch eine Bedingung enthält, die auf einer bestimmten App-ID oder Nutzerzielgruppe basiert, die im Zielprojekt nicht vorhanden ist, schlägt die Validierung fehl.

  • Wenn die Vorlage, die Sie veröffentlichen möchten, Bedingungen enthält, die auf Google Analytics basieren, muss Analytics im Zielprojekt aktiviert sein.

Standardwerte für Remote Config-Vorlage herunterladen

Da Ihre App möglicherweise nicht immer mit dem Internet verbunden ist, sollten Sie für alle Remote Config-Parameter clientseitige Standardwerte konfigurieren. Sie sollten auch die Standardwerte Ihres App-Clients und die Standardparameterwerte des Remote Config-Backends regelmäßig synchronisieren, da sie sich im Laufe der Zeit ändern können.

Wie in den plattformspezifischen Links am Ende dieses Abschnitts beschrieben, können Sie diese Standardwerte manuell in Ihrer App festlegen oder diesen Prozess optimieren, indem Sie Dateien herunterladen, die nur die Schlüssel/Wert-Paare für alle Parameter und ihre Standardwerte in der aktiven Remote Config-Vorlage enthalten. Sie können diese Datei dann in Ihr Projekt einbinden und Ihre App so konfigurieren, dass diese Werte importiert werden.

Sie können diese Dateien im XML-Format für Android-Apps, im Property List-Format (plist) für iOS-Apps und im JSON-Format für Web-Apps herunterladen.

Laden Sie vor jeder neuen App-Veröffentlichung regelmäßig die Remote Config-Standardwerte herunter, damit Ihre App und das Remote Config-Backend synchron bleiben.

So laden Sie eine Datei mit Standardvorlagen herunter:

REST

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

Verwenden Sie je nach gewünschtem Dateiformat XML, PLIST oder JSON als Wert für format.

Firebase-Konsole

  1. Rufen Sie in der Firebase-Konsole die Seite DevOps & Engagement > Remote Config > Parameter auf.

  2. Öffnen Sie das Menü und wählen Sie Standardwerte herunterladen aus.

  3. Klicken Sie bei Aufforderung auf das Optionsfeld für das Dateiformat, das Sie herunterladen möchten, und dann auf Datei herunterladen.

Weitere Informationen zum Importieren von Remote Config-Standardwerten in Ihre App finden Sie hier: