Remote-Konfigurationsvorlagen und Versionierung

Die Remote Config-Vorlage ist der serverseitige Satz von JSON-formatierten Parametern und Bedingungen, die Sie für Ihr Firebase-Projekt erstellt haben. Sie können die Vorlage mithilfe der Firebase-Konsole ändern und verwalten, die den Inhalt der Vorlage in grafischer Form auf den Registerkarten „Parameter“ und „ Bedingungen “ anzeigt. Sie können auch die Remote Config-Back-End-APIs oder die Firebase-CLI verwenden, um Ihre Konfiguration zu ändern und zu verwalten.

Hier ist ein Beispiel für eine Vorlagendatei:

  {
    "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"
    }
  }

Jedes Mal, wenn Sie Parameter aktualisieren, erstellt Remote Config eine neue versionierte Remote Config-Vorlage und speichert die vorherige Vorlage als eine Version, die Sie nach Bedarf abrufen oder wiederherstellen können. Versionsnummern werden sequenziell ab dem von Remote Config gespeicherten Anfangswert erhöht. Alle Vorlagen enthalten ein version wie gezeigt, das Metadaten zu dieser bestimmten Version enthält.

Mit der Firebase-Konsole, der Firebase-CLI oder den Remote Config-Back-End-APIs können Sie diese Versionsverwaltungsaufgaben ausführen:

  • Alle gespeicherten Vorlagenversionen auflisten
  • Rufen Sie eine bestimmte Version ab
  • Zurücksetzen auf eine bestimmte Version

Denken Sie beim Verwalten von Remote Config-Vorlagen an den Ablaufschwellenwert: Die aktuell aktive Remote Config-Vorlage, die von Ihrer App verwendet wird, läuft nicht ab; wird sie jedoch durch ein Update ersetzt, wird die vorherige Version nur 90 Tage gespeichert, danach verfällt sie und kann nicht mehr abgerufen werden. Es gibt auch ein Gesamtlimit von 300 gespeicherten Versionen. Wenn Sie eine Vorlage außerhalb dieser Grenzen speichern oder wiederherstellen möchten, speichern und speichern Sie sie manuell.

Versionen von Remote Config-Vorlagen verwalten

In diesem Abschnitt wird beschrieben, wie Sie Versionen Ihrer Remote Config-Vorlage verwalten. Weitere Einzelheiten zum programmgesteuerten Erstellen, Ändern und Speichern von Vorlagen finden Sie unter Programmgesteuertes Ändern von Remote-Konfigurationen .

Alle gespeicherten Versionen der Remote Config-Vorlage auflisten

Sie können eine Liste aller gespeicherten Versionen der Remote Config-Vorlage abrufen. Zum Beispiel:

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

SICH AUSRUHEN

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

Firebase-Konsole

Wählen Sie auf der Registerkarte Parameter das oben rechts angezeigte Symbol „Uhr“ aus. Dadurch wird die Seite „ Änderungsverlauf “ geöffnet, auf der alle gespeicherten Vorlagenversionen in einem Listenmenü auf der rechten Seite aufgeführt sind.

Zu den Details, die für jede gespeicherte Version angezeigt werden, gehören Informationen darüber, ob die Änderungen von der Konsole, von der REST-API, von einem Rollback stammen oder ob es sich um inkrementelle Änderungen aus einer erzwungenen Speicherung der Vorlage handelt.

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.

Die Liste der Vorlagen enthält Metadaten für alle gespeicherten Versionen, einschließlich des Zeitpunkts der Aktualisierung, des Benutzers, der sie erstellt hat, und ob sie über die Konsole oder die REST-API erstellt 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"
  }]

Rufen Sie eine bestimmte Version der Remote Config-Vorlage ab

Sie können jede spezifische gespeicherte Version der Remote Config-Vorlage abrufen. Zum Beispiel:

Node.js

getTemplate() ohne Argumente, um die neueste Version der Vorlage abzurufen, oder verwenden 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());

SICH AUSRUHEN

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

Der URL-Parameter ?version_number ist nur für GET -Operationen gültig; Sie können es nicht verwenden, um Versionsnummern für Updates anzugeben. Eine ähnliche Get-Anfrage ohne den Parameter ?version_number würde die aktuell aktive Vorlage abrufen.

Firebase-Konsole

Standardmäßig zeigt der Detailbereich auf der Registerkarte „ Änderungsverlauf “ die aktuell aktive Vorlage an. Um Details für eine andere Version in der Liste anzuzeigen, wählen Sie sie im rechten Menü aus.

Sie können einen detaillierten Vergleich der aktuell ausgewählten Version und jeder anderen gespeicherten Version anzeigen, indem Sie den Mauszeiger über das Kontextmenü für eine nicht ausgewählte Version bewegen und Mit ausgewählter Version vergleichen auswählen.

Firebase-CLI

firebase remoteconfig:get -v VERSION_NUMBER

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

Zurücksetzen auf eine bestimmte gespeicherte Version der Remote-Konfigurationsvorlage

Sie können zu jeder gespeicherten Version der Vorlage zurückkehren. Zum Beispiel:

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

SICH AUSRUHEN

Um zu einer gespeicherten Remote-Konfigurationsvorlage zurückzukehren, geben Sie einen HTTP-POST mit der benutzerdefinierten Methode :rollback und im Anforderungstext die anzuwendende spezifische Version aus. Zum Beispiel:

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

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

Firebase-Konsole

Für frühere Vorlagenversionen, die für ein Rollback in Frage kommen, wird oben rechts auf der Seite „ Änderungsverlauf “ eine Optionsschaltfläche zum Zurücksetzen auf diese Version angezeigt. Klicken und bestätigen Sie dies nur, wenn Sie sicher sind, dass Sie zu dieser Version zurückkehren und diese Werte sofort für alle Apps und Benutzer verwenden möchten.

Firebase-CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Beachten Sie, dass dieser Rollback-Vorgang effektiv eine neue nummerierte Version erstellt. Beispielsweise erstellt ein Rollback von Version 10 auf Version 6 effektiv eine neue Kopie von Version 6, die sich vom Original nur dadurch unterscheidet, dass ihre Versionsnummer 11 ist. Die ursprüngliche Version 6 wird immer noch gespeichert, vorausgesetzt, sie hat ihr Ablaufdatum nicht erreicht, und Version 11 wird zur aktiven Vorlage.

Laden Sie die Standardeinstellungen der Remote Config-Vorlage herunter

Da Ihre App möglicherweise nicht immer mit dem Internet verbunden ist, sollten Sie clientseitige App-Standardwerte für alle Remote Config-Parameter 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 rationalisieren, indem Sie Dateien herunterladen, die nur die Schlüssel-Wert-Paare für alle Parameter und ihre Standardwerte in der aktive Remote Config-Vorlage. Sie können diese Datei dann in Ihr Projekt einschließen und Ihre App so konfigurieren, dass diese Werte importiert werden.

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

Wir empfehlen, vor jeder neuen App-Veröffentlichung regelmäßig Remote Config-Standardeinstellungen herunterzuladen, um sicherzustellen, dass Ihre App und das Remote Config-Back-End synchron bleiben.

So laden Sie eine Datei herunter, die Vorlagenvorgaben enthält:

SICH AUSRUHEN

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 XML , PLIST oder JSON als format , je nachdem, welches Dateiformat Sie herunterladen möchten.

Firebase-Konsole

  1. Öffnen Sie auf der Registerkarte Parameter das Menü und wählen Sie Standardwerte herunterladen aus .
  2. Wenn Sie dazu aufgefordert werden, klicken Sie auf das Optionsfeld, das dem Dateiformat entspricht, das Sie herunterladen möchten, und klicken Sie dann auf Datei herunterladen .

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