Remote Config-Vorlagen sind Gruppen von JSON-formatierten Parametern und Bedingungen, die Sie für Ihr Firebase-Projekt erstellt haben. Sie können Clientvorlagen erstellen, aus denen Ihre App Werte abruft, und Servervorlagen, aus denen Serverclients Werte abrufen können.
In diesem Abschnitt werden Client-Vorlagen behandelt. Wenn Sie mehr über serverspezifische Vorlagen erfahren möchten, klicken Sie auf Servervorlagen.Sie können die Vorlage in der Firebase-Konsole ändern und verwalten. Dort wird der Inhalt der Vorlage auf den Tabs Parameter und Bedingungen in grafischer Form dargestellt. Die Tabs Parameter und Bedingungen.
Sie können auch die Remote Config REST API und das Admin SDK oder die Firebase CLI verwenden, um Ihre Clientvorlage zu ändern und zu verwalten.
Hier sehen Sie ein Beispiel für eine Servervorlagendatei:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
Sie können diese Aufgaben zur Versionsverwaltung mit der Firebase-Konsole ausführen:
- Alle gespeicherten Vorlagenversionen auflisten
- Bestimmte Version abrufen
- Rollback zu einer bestimmten Clientversion durchführen
- Remote Config-Vorlagen auf der Seite Änderungsverlauf löschen
Es gibt ein Gesamtlaufzeitlimit von 300 gespeicherten Versionen pro Vorlagentyp (300 Clientvorlagen und 300 Servervorlagen). Das Limit umfasst auch gespeicherte Versionsnummern für gelöschte Vorlagen. Wenn Sie im Laufe der Lebensdauer eines Projekts mehr als 300 Vorlagenversionen pro Vorlagentyp veröffentlichen, werden die ältesten Versionen gelöscht, sodass maximal 300 Versionen dieses Typs vorhanden sind.
Jedes Mal, wenn Sie Parameter aktualisieren, wird in Remote Config eine neue versionierte Remote Config-Vorlage erstellt und die vorherige Vorlage als Version gespeichert, die Sie bei Bedarf abrufen oder auf die Sie ein Rollback durchführen können. Versionsnummern werden sequenziell ab dem von Remote Config gespeicherten Anfangswert erhöht.
Alle Vorlagen enthalten das version
-Feld, wie unten dargestellt, mit Metadaten zu dieser spezifischen Version.
Sie können Remote Config-Vorlagen bei Bedarf auf der Seite Änderungsverlauf der Remote Config-Konsole löschen.
Remote Config-Vorlagenversionen verwalten
In diesem Abschnitt wird beschrieben, wie Sie Versionen Ihrer Remote Config-Vorlage verwalten.
Alle gespeicherten Versionen der Vorlage Remote Config auflisten
Sie können eine Liste aller gespeicherten Versionen der Vorlage Remote Config abrufen. So funktionierts:
Firebase Console
Wählen Sie auf dem Tab Parameter rechts oben das Uhrensymbol aus. Dadurch wird die Seite Änderungsverlauf geöffnet. Dort werden alle gespeicherten Vorlagenversionen in einem Listenmenü auf der rechten Seite aufgeführt.
Die für jede gespeicherte Version angezeigten Details enthalten Informationen dazu, ob die Änderungen in der Console, über die REST API, durch einen Rollback oder durch inkrementelle Änderungen aus einem erzwungenen Speichern der Vorlage entstanden sind.
Firebase CLI
firebase remoteconfig:versions:list
Mit der Option --limit
können Sie die Anzahl der zurückgegebenen Versionen 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 <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/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 der Aktualisierung. Hier ist ein Beispiel für ein Versionselement:
```json
{
"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"
}]
}
```
Eine bestimmte Version der Vorlage Remote Config abrufen
Sie können jede gespeicherte Version der Vorlage Remote Config abrufen. So rufen Sie eine gespeicherte Vorlagenversion ab:
Firebase Console
Standardmäßig wird im Detailbereich auf dem Tab Änderungsverlauf die aktuell aktive Vorlage angezeigt. Wenn Sie sich die Details einer anderen Version in der Liste ansehen möchten, wählen Sie sie im Menü rechts aus.
Sie können einen detaillierten Vergleich der aktuell ausgewählten Version mit einer anderen gespeicherten Version aufrufen, indem Sie den Mauszeiger auf das Kontextmenü einer nicht ausgewählten 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 bestimmte Datei schreiben.
Node.js
Übergeben Sie getTemplate()
ohne Argumente, um die neueste Version der Vorlage abzurufen. Wenn Sie eine bestimmte Version abrufen möchten, verwenden Sie 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());
REST
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
-Vorgänge gültig. Sie können ihn nicht verwenden, um Versionsnummern für Updates anzugeben. Bei einer ähnlichen GET-Anfrage ohne den Parameter ?version_number
wird die aktuell aktive Vorlage abgerufen.
Rollback zu einer bestimmten gespeicherten Version der Vorlage Remote Config durchführen
Sie können zu jeder gespeicherten Version der Vorlage zurückkehren. So machen Sie eine Vorlage rückgängig:
Firebase Console
Für frühere Vorlagenversionen, die für ein Rollback infrage kommen, wird rechts oben auf der Seite Änderungsverlauf eine Optionsschaltfläche für das Rollback zu dieser Version angezeigt. Klicken Sie nur dann auf „Bestätigen“, wenn Sie sicher sind, dass Sie zu dieser Version zurückkehren 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 zu einer gespeicherten Remote Config-Vorlage zurückkehren möchten, senden Sie eine HTTP-POST-Anfrage mit der benutzerdefinierten Methode :rollback
und geben Sie im Anfragebody die anzuwendende Version an. 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.
Bei diesem Rollback-Vorgang wird eine neue nummerierte Version erstellt. Wenn Sie beispielsweise von Version 10 zu Version 6 zurückkehren, wird effektiv eine neue Kopie von Version 6 erstellt, die sich vom Original nur dadurch unterscheidet, dass ihre Versionsnummer 11 ist. Die ursprüngliche Version 6 ist weiterhin gespeichert, sofern sie noch nicht abgelaufen ist. 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 Remote Config-Vorlage:
1. Klicken Sie auf der Seite Remote Config Parameter auf Änderungsverlauf.Wechseln Sie zur Vorlage, die Sie löschen möchten, klicken Sie auf das Dreipunkt-Menü
Mehr und wählen Sie dann Löschen aus.Wenn Sie zur Bestätigung der Löschung 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 zu integrieren, Konfigurationsaktualisierungen zu automatisieren und Parameter und Werte in mehreren Projekten zu synchronisieren.
Sie können die derzeit aktive Remote Config-Vorlageü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 Ihres 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 übernehmen, 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 in ein anderes 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:
- Laden Sie die aktuelle Remote Config-Konfigurationsvorlage herunter.
- Remote Config-Vorlage validieren
- Veröffentlichen Sie die Remote Config-Vorlage.
Aktuelle Remote Config-Vorlage herunterladen
Verwenden Sie Folgendes, um die aktive Remote Config-Vorlage im JSON-Format herunterzuladen:
Firebase Console
- Öffnen Sie auf dem Tab Remote Config Parameter oder Bedingungen das Menü und wählen Sie Aktuelle Konfigurationsdatei herunterladen aus.
- Klicken Sie bei entsprechender Aufforderung auf Konfigurationsdatei herunterladen, wählen Sie den Speicherort für die Datei aus und klicken Sie 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 dem Firebase Admin SDK oder der REST API validieren. Vorlagen werden auch validiert, wenn Sie versuchen, sie über die Firebase-CLI oder die Firebase-Konsole zu veröffentlichen.Bei der Vorlagenvalidierung wird nach Fehlern wie doppelten Schlüsseln für Parameter und Bedingungen, ungültigen oder nicht vorhandenen Bedingungsnamen oder falsch formatierten ETags gesucht. 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.
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
Sie können Vorlagenaktualisierungen validieren, 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).
Remote Config-Vorlage 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.
Beim Veröffentlichen einer Vorlage 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, auch 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.
Verwenden Sie die folgenden Befehle, um Ihre Vorlage zu veröffentlichen:
Firebase Console
- Öffnen Sie auf dem Tab Remote ConfigParameter oder Bedingungen das Menü und wählen Sie Aus Datei veröffentlichen aus.
- Klicken Sie bei Aufforderung auf Durchsuchen, rufen Sie die Remote Config-Datei auf, die Sie veröffentlichen möchten, und wählen Sie sie aus. Klicken Sie dann auf Auswählen.
- Die Datei wird validiert. Wenn die Validierung erfolgreich ist, können Sie auf Veröffentlichen klicken, 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. Daher ist es wichtig, die folgenden Einschränkungen zu beachten, 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 bedingten Werte (z. B. App-IDs oder Zielgruppen) im Zielprojekt vorhanden sein müssen, bevor Sie sie veröffentlichen.
Wenn Sie beispielsweise einen Remote Config-Parameter mit einer Bedingung haben, die den Plattformwert
iOS
angibt, kann die Vorlage in einem anderen Projekt veröffentlicht werden, da Plattformwerte für alle Projekte gleich sind. Wenn sie 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.
Remote Config-Standardvorlage herunterladen
Da Ihre App möglicherweise nicht immer mit dem Internet verbunden ist, sollten Sie clientseitige Standardwerte für alle Remote Config-Parameter konfigurieren. Sie sollten 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. Sie können diesen Prozess aber auch 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 einfügen 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.
Wir empfehlen, die Remote Config-Standardeinstellungen vor jeder neuen App-Version regelmäßig herunterzuladen, damit Ihre App und das Remote Config-Backend synchron bleiben.
So laden Sie eine Datei mit Vorlagestandardwerten 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 XML
, PLIST
oder JSON
als format
-Wert, je nachdem, welches Dateiformat Sie herunterladen möchten.
Firebase Console
- Öffnen Sie auf dem Tab Parameter das Menü und wählen Sie Standardwerte herunterladen aus.
- 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:
Standardparameterwerte für In-App-Käufe für Android festlegen
Standardparameterwerte für In-App-Ereignisse für iOS festlegen
Standardparameterwerte für In-App-Ereignisse für das Web festlegen