Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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 mit der Firebase - Konsole, die zeigt den Inhalt der Vorlage im grafischen Format in den ändern und verwalten Parameter und Bedingungen Registerkarten. Sie können auch die Verwendung Remote - Config - Backend APIs oder die Firebase CLI an der Config ä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 Remote Config-Vorlage mit Versionsnummer und speichert die vorherige Vorlage als eine Version, die Sie nach Bedarf abrufen oder auf die Sie zurücksetzen können. Versionsnummern werden sequentiell ausgehend von dem von Remote Config gespeicherten Anfangswert inkrementiert. Alle Vorlagen enthalten eine version Feld wie gezeigt, enthält Metadaten über die spezifische Version.

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
  • Abrufen einer bestimmten Version
  • Rollback zu einer bestimmten Version

Berücksichtigen Sie bei der Verwaltung von Remote Config-Vorlagen den Ablaufgrenzwert: 90 Tage ab Erstellungszeit oder ein Gesamtlimit von 300 gespeicherten Versionen. Wenn Sie eine Vorlage außerhalb dieser Grenzen speichern oder auf sie zurücksetzen möchten, speichern und speichern Sie sie manuell. Die aktuelle aktive Remote - Config - Vorlage in der Nutzung durch Ihre Anwendung läuft nicht ab ; Wenn es jedoch seit der Erstellung über 90 Tage aktiv war und durch ein Update ersetzt wird, kann es (wegen Ablauf) nicht erneut abgerufen werden.

Versionen von Remote Config-Vorlagen verwalten

In diesem Abschnitt wird beschrieben, wie Sie Versionen Ihrer Remote Config-Vorlage verwalten. Für weitere Einzelheiten über das Erstellen, Ändern und Vorlagen programmatisch speichern, siehe Ändern Remote - Config programmatisch .

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>:listVersions

Firebase-Konsole

In den Parametern Registerkarte wählen Sie das „Uhr“ Symbol oben rechts angezeigt. Dies öffnet die Änderungshistorie Seite mit einer Liste aller gespeicherten Template - Versionen in einer Liste Menü auf der rechten Seite .

Die für jede gespeicherte Version angezeigten Details umfassen Informationen darüber, ob die Änderungen von der Konsole, mit der REST-API, von einem Rollback stammen oder ob es sich um inkrementelle Änderungen durch ein erzwungenes Speichern der Vorlage handelte.

Firebase-CLI

firebase remoteconfig:versions:list

Verwenden Sie die --limit Option die Anzahl der Versionen zu begrenzen zurückgegeben werden. Übergeben Sie '0', um alle Versionen abzurufen.

Die Liste der Vorlagen enthält Metadaten für alle gespeicherten Versionen, einschließlich des Zeitpunkts des Updates, des Benutzers, der es erstellt hat und ob es über die Konsole oder die REST-API erstellt wurde. Hier ist ein Beispiel für ein Versionselement:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Abrufen einer bestimmten Version der Remote Config-Vorlage

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

Node.js

Pass getTemplate() ohne Argumente die neueste Version der Vorlage abzurufen, oder eine bestimmte Version abrufen, verwenden getTemplateAtVersion() .

// 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</pre>

Die URL - Parameter ?version_number gilt nur für GET - Operationen; Sie können damit keine Versionsnummern für Updates angeben. Eine ähnliche get Anfrage ohne das ?version_number Parameter würde die aktuelle aktive Vorlage abzurufen.

Firebase-Konsole

In der Standardeinstellung der Detailbereich in der Änderungshistorie Registerkarte zeigt die aktuelle aktive Vorlage. Um Details zu einer anderen Version in der Liste anzuzeigen, wählen Sie diese im rechten Menü aus.

Sie können eine detaillierte diff der aktuell ausgewählten Version sehen und jede anderen gespeicherte Version von für jede nicht ausgewählte Version über das Kontextmenü schweben und Auswahl mit ausgewählter Version vergleichen.

Firebase-CLI

firebase remoteconfig:get -v VERSION_NUMBER

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

Rollback zu einer bestimmten gespeicherten Version der Remote Config-Vorlage

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

Rollback auf eine gespeicherte Remote - Config - Vorlage, gibt einen HTTP - POST mit der benutzerdefinierten Methode :rollback und im Anforderungstext, die spezifische Version anzuwenden. Zum Beispiel:

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

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

Firebase-Konsole

Bei früheren Versionen Vorlage , die für Rollback, eine Option - Taste , um diese Version zu Rollback ist oben rechts neben der angezeigte Änderungshistorie Seite. Klicken Sie auf und bestätigen Sie dies nur , wenn Sie sicher sind , möchten Sie Rolle zurück zu dieser Version und verwenden diese Werte sofort für alle Anwendungen und Benutzer.

Firebase-CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

Beachten Sie, dass dieser Rollback-Vorgang effektiv eine neue nummerierte Version erstellt. Wenn Sie beispielsweise von Version 10 auf Version 6 zurücksetzen, wird effektiv eine neue Kopie von Version 6 erstellt, die sich vom Original nur dadurch unterscheidet, dass die Versionsnummer 11 ist. Die Originalversion 6 wird weiterhin gespeichert, sofern sie noch nicht abgelaufen ist, und Version 11 wird die aktive Vorlage.