Remote Config programmatisch ändern

In diesem Dokument wird beschrieben, wie Sie und die JSON-formatierten Parameter und Bedingungen, die als Remote Config-Vorlage. So können Sie Vorlagenänderungen am Backend vornehmen, die die Client-App mithilfe der Clientbibliothek abrufen kann.

Über die Remote Config REST API oder Admin SDKen, die in diesem Leitfaden beschrieben werden, können Sie die Vorlage in der Firebase-Konsole verwalten, um sie direkt Remote Config ändert sich in Ihren eigenen Prozessen. Beispiel: Mit Remote Config Back-End-APIs können Sie:

  • Remote Config-Updates werden geplant. Mit API-Aufrufen in Verbindung mit einem Cronjob können Sie Remote Config-Werte regelmäßig ändern.
  • Sie können Konfigurationswerte im Batch importieren, um einen effizienten Übergang von Ihrem eigenen System zu Firebase Remote Config zu ermöglichen.
  • Verwenden Sie Remote Config mit Cloud Functions for Firebase, um Werte in Ihrer App basierend auf serverseitigen Ereignissen zu ändern. Sie können beispielsweise Remote Config verwenden, um eine neue Funktion in Ihrer App zu bewerben, und diese Werbung automatisch deaktivieren, sobald Sie feststellen, dass genug Nutzer mit der neuen Funktion interagiert haben.

    Diagramm, das das Remote Config-Backend zeigt, das mit benutzerdefinierten Tools und Servern interagiert

In den folgenden Abschnitten dieses Leitfadens werden Vorgänge beschrieben, die Sie mit den Remote Config-Backend-APIs ausführen können. Um Code zu überprüfen, der diese Aufgaben über die REST API ausführen, sehen Sie sich eine der folgenden Beispielanwendungen an:

Remote Config mit dem Firebase Admin SDK ändern

Die Admin SDK ist eine Reihe von Serverbibliotheken, mit denen Sie aus privilegierten Umgebungen mit Firebase interagieren können. Neben der Durchführung von Updates an Remote Config ermöglicht die Admin SDK das Generieren und Überprüfen von Firebase-Authentifizierungstokens, Daten aus Realtime Database lesen und schreiben usw. Admin SDKWeitere Informationen zu den Voraussetzungen und zur Einrichtung finden Sie unter Firebase Admin SDK auf dem Server hinzufügen.

Bei einem typischen Remote Config-Ablauf erhalten Sie möglicherweise die aktuelle Vorlage, der Parameter oder Parametergruppen und Bedingungen und veröffentlichen Sie sie dann. Bevor Sie diese API-Aufrufe ausführen, müssen Sie vom SDK gesendet werden.

SDK initialisieren und API-Anfragen autorisieren

Beim Initialisieren der Admin SDK ohne Parameter verwendet das SDK Standardanmeldedaten für Google-Anwendungen und liest Optionen aus der Umgebungsvariable FIREBASE_CONFIG. Wenn der Inhalt der Variable FIREBASE_CONFIG mit { beginnt, lautet er: als JSON-Objekt geparst. Andernfalls geht das SDK davon aus, dass der String den Namen einer JSON-Datei mit den Optionen.

Beispiel:

Node.js

const admin = require('firebase-admin');
admin.initializeApp();

Java

FileInputStream serviceAccount = new FileInputStream("service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
        .setCredentials(GoogleCredentials.fromStream(serviceAccount))
        .build();
FirebaseApp.initializeApp(options);

Aktuelle Remote Config-Vorlage abrufen

Beachten Sie bei der Arbeit mit Remote Config-Vorlagen, dass diese versioniert sind und dass jede Version eine begrenzte Lebensdauer Erstellung bis zu dem Zeitpunkt, an dem Sie sie durch ein Update ersetzen: 90 Tage mit einem Gesamtlimit von 300 gespeicherten Versionen. Siehe Vorlagen und Versionsverwaltung .

Mit den Backend-APIs kannst du die aktuell aktive Version der Remote Config-Vorlage im JSON-Format abrufen.

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

So rufen Sie die Vorlage ab:

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

Remote Config-Parameter ändern

Sie können Remote Config-Parameter programmatisch ändern und hinzufügen Parametergruppen. In eine vorhandene Parametergruppe namens „new_menu“ Sie könnten einen Parameter hinzufügen, um die Anzeige von saisonalen Informationen zu steuern:

Node.js

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

Java

template.getParameterGroups().get("new_menu").getParameters()
        .put("spring_season", new Parameter()
                .setDefaultValue(ParameterValue.inAppDefault())
                .setDescription("spring season menu visibility.")
        );

Die API können Sie neue Parameter und Standardwerte, bedingte Werte und Beschreibungen ändern. In jedem Fall müssen Sie die Vorlage nach den Änderungen ausdrücklich veröffentlichen.

Remote Config-Bedingungen ändern

Sie können Remote Config-Bedingungen und ‐Bedingungen programmatisch ändern und hinzufügen. bedingten Werten. So fügen Sie beispielsweise eine neue Bedingung hinzu:

Node.js

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

Java

template.getConditions().add(new Condition("android_en",
        "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));

In allen Fällen müssen Sie die Vorlage explizit nach Änderungen vornehmen.

Die Remote Config-Back-End-APIs bieten mehrere Bedingungen und Vergleiche Operatoren, mit denen du das Verhalten und die Darstellung deiner App ändern kannst. Bis weitere Informationen zu Bedingungen und den dafür unterstützten Operatoren. finden Sie in der Referenz zu bedingten Ausdrücken.

Remote Config-Vorlage validieren

Optional können Sie Ihre Änderungen vor der Veröffentlichung validieren:

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

Bei diesem Validierungsprozess werden Fehler wie doppelte Schlüssel für Parameter und Bedingungen, ungültige Bedingungsnamen oder nicht vorhandene Bedingungen oder falsch formatierte E-Tags geprüft. Wenn eine Anfrage beispielsweise mehr als die zulässige Anzahl von Schlüsseln (2.000) enthält, wird die Fehlermeldung Param count too large zurückgegeben.

Remote Config-Vorlage veröffentlichen

Nachdem Sie eine Vorlage abgerufen und mit den gewünschten Änderungen überarbeitet haben, können Sie sie veröffentlichen. Wenn Sie eine Vorlage wie in diesem Abschnitt beschrieben veröffentlichen, wird die gesamte vorhandene Konfigurationsvorlage durch die aktualisierte Datei ersetzt. Der neuen aktiven Vorlage wird eine Versionsnummer zugewiesen, die um eins höher ist als die der ersetzten Vorlage.

Bei Bedarf können Sie mit der REST API ein Rollback auf die vorherige Version durchführen. Um das Risiko von Fehlern bei einer Aktualisierung zu verringern, können Sie sie vor der Veröffentlichung validieren.

Remote Config Personalisierungen und Bedingungen sind enthalten in heruntergeladenen Vorlagen. Beachten Sie deshalb Folgendes: Einschränkungen beim Veröffentlichen in einem anderen Projekt:

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

    Wenn Sie beispielsweise in Ihrem Projekt Personalisierungen aktiviert haben und eine Vorlage herunterladen und bearbeiten, können Sie sie in demselben Projekt veröffentlichen. In einem anderen Projekt ist dies jedoch nur möglich, wenn Sie die Personalisierungen aus der Vorlage löschen.

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

    Wenn Sie beispielsweise einen Remote Config-Parameter mit einer Bedingung haben, 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 die Vorlage jedoch eine Bedingung enthält, die auf einer bestimmten App-ID oder Nutzergruppe 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.

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

Remote Config mit der REST API ändern

In diesem Abschnitt werden die wichtigsten Funktionen der Remote Config REST API unter https://firebaseremoteconfig.googleapis.com beschrieben. Weitere Informationen finden Sie in der API-Referenz.

Zugriffstoken zum Authentifizieren und Autorisieren von API-Anfragen abrufen

Firebase-Projekte unterstützen Google Dienstkonten mit dem Sie Firebase aufrufen können, von Ihrem Anwendungsserver oder einer vertrauenswürdigen Umgebung bereitgestellt. Wenn Sie bei der Entwicklung oder die Anwendung lokal bereitstellen, können Sie Anmeldedaten verwenden, über dieses Dienstkonto, um Serveranfragen zu autorisieren.

Wenn Sie ein Dienstkonto authentifizieren und autorisieren möchten, auf Firebase-Dienste zuzugreifen, müssen Sie eine private Schlüsseldatei im JSON-Format generieren.

So generieren Sie eine Datei mit einem privaten Schlüssel für Ihr Dienstkonto:

  1. Öffnen Sie in der Firebase-Konsole Einstellungen > Dienstkonten.

  2. Klicke auf Neuen privaten Schlüssel generieren und bestätige die Aktion mit einem Klick auf Schlüssel generieren.

  3. Speichern Sie die JSON-Datei mit dem Schlüssel sicher.

Wenn Sie die Autorisierung über ein Dienstkonto vornehmen, haben Sie zwei Möglichkeiten, die Anmeldedaten für Ihre Anwendung bereitzustellen. Sie können entweder die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen oder den Pfad zum Dienstkontoschlüssel explizit im Code übergeben. Die erste Option ist sicherer und wird dringend empfohlen.

So legen Sie die Umgebungsvariable fest:

Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen zum Dateipfad der JSON-Datei hinzu, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie legen Sie die Variable erneut fest.

Linux oder macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

Mit PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

Nachdem Sie die oben genannten Schritte ausgeführt haben, werden Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) kann Ihre Anmeldedaten implizit ermitteln, sodass Sie den Dienst Anmeldedaten des Kontos beim Testen oder Ausführen in Umgebungen von Drittanbietern.

Verwenden Sie Ihre Firebase-Anmeldedaten zusammen mit der Google Auth-Bibliothek für Ihre bevorzugte Sprache, um ein kurzlebiges OAuth 2.0-Zugriffstoken abzurufen:

Node.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

In diesem Beispiel authentifiziert die Google API-Clientbibliothek die Anfrage mit ein JSON-Web-Token oder JWT. Weitere Informationen finden Sie unter JSON-Webtokens

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

public static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

Nach Ablauf des Zugriffstokens wird die Tokenaktualisierungsmethode automatisch aufgerufen, um ein aktualisiertes Zugriffstoken abzurufen.

Fordern Sie den Bereich an, um den Zugriff auf Remote Config zu autorisieren https://www.googleapis.com/auth/firebase.remoteconfig.

Remote Config-Vorlage ändern

Bei der Arbeit mit Remote Config-Vorlagen ist zu beachten, dass sie versioniert sind und dass jede Version eine begrenzte Lebensdauer hat, die vom Zeitpunkt der Erstellung bis zum Zeitpunkt des Ersetzens durch ein Update beträgt: 90 Tage, mit einem Gesamtlimit von 300 gespeicherten Versionen. Siehe Vorlagen und Versionsverwaltung .

Aktuelle Remote Config-Vorlage abrufen

Mit den Backend-APIs können Sie die aktuell aktive Version der Remote Config-Vorlage im JSON-Format abrufen.

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

Verwenden Sie die folgenden Befehle:

cURL

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 Etags) in eine separate Datei ausgegeben.

Rohe HTTP-Anfrage

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

Dieser API-Aufruf gibt die folgende JSON-Datei zusammen mit einem separaten Header zurück, der ein ETag enthält, das Sie für den nachfolgende Anfrage.

Remote Config-Vorlage validieren

Optional können Sie Ihre Updates vor dem Veröffentlichen validieren. Validiere Vorlagenaktualisierungen, indem du deiner Veröffentlichungsanfrage den URL-Parameter ?validate_only=true anhängst. In der Antwort der Statuscode 200 und ein aktualisiertes ETag mit dem Suffix -0 bedeutet, dass dein Update erfolgreich validiert wurde. Alle Nicht-200-Antworten gibt an, dass die JSON-Daten Fehler enthalten, die Sie vor dem Fehler beheben müssen Veröffentlichung.

Remote Config-Vorlage aktualisieren

Nachdem Sie eine Vorlage abgerufen und den JSON-Inhalt mit den können Sie sie veröffentlichen. Wenn Sie eine Vorlage veröffentlichen, ersetzt die gesamte vorhandene Konfigurationsvorlage durch die aktualisierte Datei und der neuen aktiven Vorlage eine Versionsnummer zugewiesen wird, die eine Nummer größer ist als die die sie ersetzt hat.

Bei Bedarf können Sie die REST API verwenden, um ein Rollback zur vorherigen Version durchzuführen. Um das Risiko von Fehlern bei einer Aktualisierung zu verringern, können Sie sie vor der Veröffentlichung validieren.

Remote Config Personalisierungen und Bedingungen sind enthalten in heruntergeladenen Vorlagen. Beachten Sie deshalb Folgendes: Einschränkungen beim Veröffentlichen in einem anderen Projekt:

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

    Wenn Sie beispielsweise in Ihrem Projekt Personalisierungen aktiviert haben und eine Vorlage herunterladen und bearbeiten, können Sie sie in demselben Projekt veröffentlichen. In einem anderen Projekt ist dies jedoch nur möglich, wenn Sie die Personalisierungen aus der Vorlage löschen.

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

    Wenn Sie beispielsweise einen Remote Config-Parameter mit einer Bedingung haben, 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 die Vorlage jedoch eine Bedingung enthält, die auf einer bestimmten App-ID oder Nutzergruppe basiert, die im Zielprojekt nicht vorhanden ist, schlägt die Validierung fehl.

  • Wenn die Vorlage, die Sie veröffentlichen möchten, Bedingungen enthält, Google Analytics, Analytics muss im Ziel aktiviert sein Projekt arbeiten.

cURL

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 „@“ und dem nachfolgenden Dateinamen angeben.

HTTP-Rohanfrage

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

Da es sich um eine Schreibanfrage handelt, wird das ETag durch diesen Befehl geändert und ein aktualisiertes ETag wird im des nächsten PUT-Befehls zurückgegeben.

Remote Config-Bedingungen ändern

Sie können Remote Config-Bedingungen und bedingte Werte programmatisch ändern. Mit der REST API müssen Sie die Vorlage direkt bearbeiten, um Änderungen vorzunehmen. Bedingungen vor dem Veröffentlichen der Vorlage.

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all capital letters."
    }
  }
}

Bei den oben genannten Änderungen werden zuerst eine Reihe von Bedingungen und dann Standardwerte und bedingungenbasierte Parameterwerte (bedingte Werte) für jeden Parameter definiert. Außerdem wird für jedes Element eine optionale Beschreibung -Element; wie Codekommentare, sind für die Verwendung durch Entwickler gedacht und werden nicht in der App. Ein ETag ist auch für die Versionsverwaltung bereitgestellt.

Die Remote Config-Backend-APIs bieten mehrere Bedingungen und Vergleichsoperatoren, mit denen Sie das Verhalten und das Erscheinungsbild Ihrer App ändern können. Weitere Informationen zu Bedingungen und den für diese Bedingungen unterstützten Operatoren finden Sie in der Referenz zu Bedingungsausdrücken.

HTTP-Fehlercodes

Statuscode Bedeutung
200 Aktualisiert
400 Ein Validierungsfehler ist aufgetreten. Beispiel: Eine Anfrage, die mehr als die zulässige Anzahl von Schlüsseln – 2.000 – würde 400 zurückgeben (Bad Request) mit die Fehlermeldung Param count too large. Außerdem kann der HTTPS-Statuscode in den beiden folgenden Situationen auftreten:
  • Ein Fehler aufgrund einer nicht übereinstimmenden Version ist aufgetreten, weil die Gruppe von Werten und Bedingungen seit dem letzten Abrufen eines ETag-Werts aktualisiert wurde. Um dieses Problem zu beheben, sollten Sie einen GET-Befehl verwenden, um eine neue Vorlage und einen neuen ETag-Wert abzurufen, die Vorlage zu aktualisieren und sie dann mit dieser Vorlage und dem neuen ETag-Wert zu senden.
  • Der Befehl PUT (Vorlagenanfrage Remote Config aktualisieren) wurde ohne Angabe eines If-Match-Headers ausgeführt.
401 Ein Autorisierungsfehler ist aufgetreten (kein Zugriffstoken angegeben oder der Die Firebase Remote Config REST API wurde Ihrem Projekt in nicht hinzugefügt. Cloud Developer Console)
403 Ein Authentifizierungsfehler ist aufgetreten (das falsche Zugriffstoken wurde angegeben)
500 Ein interner Fehler ist aufgetreten. Wenn dieser Fehler auftritt, Firebase-Support-Ticket einreichen

Der Statuscode 200 bedeutet, dass die Vorlage Remote Config (Parameter, Werte und Bedingungen für das Projekt) wurde aktualisiert und ist jetzt für Apps die dieses Projekt nutzen. Andere Statuscodes geben an, dass die zuvor vorhandene Remote Config-Vorlage noch in Kraft ist.

Nachdem Sie Aktualisierungen an der Vorlage gesendet haben, rufen Sie die Firebase-Konsole auf. überprüfen, ob Ihre Änderungen wie erwartet angezeigt werden. Das ist wichtig, die Reihenfolge der Bedingungen beeinflusst, wie sie bewertet werden (die erste Bedingung, die Auswertung von true wirksam wird.

ETag-Nutzung und erzwungene Aktualisierungen

Die Remote Config REST API verwendet ein Entitäts-Tag (ETag), um Race-Bedingungen und sich überschneidende Aktualisierungen von Ressourcen zu verhindern. Weitere Informationen zu ETags finden Sie unter ETag – HTTP.

Für die REST API empfiehlt Google, dass Sie das ETag, das vom letzten Befehl GET bereitgestellt wurde, und verwenden Sie diesen ETag-Wert. im Anfrageheader If-Match, wenn PUT-Befehle ausgegeben werden. Wenn Ihr PUT Befehl zu einem HTTPS-Statuscode 409 führt, sollten Sie eine neue GET , um ein neues ETag und eine neue Vorlage für den nächsten PUT-Befehl abzurufen.

Sie können das ETag und den damit verbundenen Schutz umgehen, indem Sie die Aktualisierung der Remote Config-Vorlage auf folgende Weise erzwingen: If-Match: * Dieser Ansatz wird jedoch nicht empfohlen, da es zu Datenverlusten bei der Remote Config-Vorlage kommen kann, wenn mehrere Clients die Remote Config-Vorlage aktualisieren. Diese Art von Konflikt kann bei mehreren Clients auftreten, die die API verwenden, oder bei widersprüchlichen Aktualisierungen von API-Clients und Firebase-Console-Nutzern.

Eine Anleitung zum Verwalten von Remote Config-Vorlagenversionen finden Sie unter Remote Config-Vorlagen und -Versionsverwaltung