Firebase Remote Config unterstützt die serverseitige Konfiguration mit dem Firebase Admin Python SDK v6.7.0+. Mit dieser Funktion können Sie das Verhalten und die Konfiguration serverseitiger Anwendungen mit Remote Config dynamisch verwalten. Dazu gehören auch serverlose Implementierungen wie Cloud Functions.
Im Gegensatz zu Firebase Client SDKs, die eine clientspezifische Konfiguration abrufen, die aus der Remote Config-Vorlage abgeleitet wird, lädt das serverseitige Remote Config SDK eine vollständige Remote Config-Vorlage aus Firebase herunter. Ihr Server kann die Vorlage dann bei jeder eingehenden Anfrage auswerten und mit seiner eigenen Logik eine benutzerdefinierte Antwort mit sehr geringer Latenz bereitstellen. Mit Bedingungen können Sie Antworten basierend auf zufälligen Prozentsätzen und in benutzerdefinierten Signalen definierten Clientattributen steuern und anpassen.
Mit serverseitigem Remote Config haben Sie folgende Möglichkeiten:
- Konfigurationsparameter für Anwendungen definieren, die auf Ihrem Server ausgeführt werden oder über Ihren Server aufgerufen werden. So können Sie Anwendungsfälle wie die Remote-Konfiguration von KI-Modellparametern und Prompts sowie andere Integrationen ermöglichen und gleichzeitig Ihre API-Schlüssel schützen.
- Parameter dynamisch an Änderungen in Ihrer Umgebung oder an andere Anwendungsänderungen anpassen, z. B. LLM-Parameter und Modellendpunkte aktualisieren.
- Kosten kontrollieren, indem Sie die APIs, die Ihr Server aufruft, remote aktualisieren.
- Benutzerdefinierte Konfigurationen für Clients, die auf Ihren Server zugreifen, im laufenden Betrieb generieren.
- Erfassen Sie, welche Clients einen Parameterwert erhalten haben, und verwenden Sie diese Informationen in Cloud Functions als Teil eines Systems zur Überprüfung von Berechtigungen.
Sie können serverseitigen Remote Config in Cloud Run, Cloud Functions oder selbst gehosteten Serverumgebungen bereitstellen.
Hinweis
Folgen Sie der Anleitung unter Firebase Admin SDK zu Ihrem Server hinzufügen, um ein Firebase-Projekt zu erstellen, ein Dienstkonto einzurichten und das Firebase Python SDK zu Ihrem Server hinzuzufügen.
Schritt 1: Firebase Admin Python SDK initialisieren und API-Anfragen autorisieren
Wenn Sie das Admin SDK ohne Parameter initialisieren, verwendet das SDK Google Application Default Credentials und liest Optionen aus der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS. So initialisieren Sie das SDK und fügen Remote Config hinzu:
import firebase_admin
import asyncio
import json
firebase_admin.initialize_app()
Schritt 2: Standardparameterwerte für Ihre Serveranwendung ermitteln
Ermitteln Sie die Variablen in Ihrer App, die Sie dynamisch mit Remote Config aktualisieren möchten. Überlegen Sie dann, welche Variablen standardmäßig in Ihrer Anwendung festgelegt werden müssen und welche Standardwerte sie haben sollten. So wird sichergestellt, dass Ihre Anwendung auch dann erfolgreich ausgeführt wird, wenn die Verbindung zum Remote Config-Backend-Server unterbrochen wird.
Wenn Sie beispielsweise eine Serveranwendung schreiben, die eine generative KI-Funktion verwaltet, können Sie einen Standardmodellnamen, eine Prompt-Präambel und eine generative KI-Konfiguration wie die folgende festlegen:
| Parametername | Beschreibung | Typ | Standardwert |
|---|---|---|---|
model_name |
Name der Modell-API | String | gemini-2.0-flash |
preamble_prompt
|
Dem Nutzer-Prompt vorangestellter Prompt | String | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
Parameter, die an das Modell gesendet werden sollen | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
Schritt 3: Serveranwendung konfigurieren
Nachdem Sie die Parameter festgelegt haben, die Sie mit Remote Config verwenden möchten, konfigurieren Sie Ihre Anwendung so, dass Standardwerte festgelegt, die serverspezifische Remote Config-Vorlage abgerufen und ihre Werte verwendet werden. In den folgenden Schritten wird beschrieben, wie Sie Ihre Python-Anwendung konfigurieren.
Greifen Sie auf die Vorlage zu und laden Sie sie.
from firebase_admin import remote_config # Initialize server-side Remote Config template = remote_config.init_server_template() # Load the template from the backend asyncio.run(template.load())Wenn Sie stattdessen Python mit Cloud Functions verwenden, können Sie das asynchrone
get_server_templateverwenden, um die Vorlage in einem einzigen Schritt zu initialisieren und zu laden:# Initialize server-side Remote Config template = await remote_config.get_server_template()Damit Ihre Anwendung auch dann erfolgreich ausgeführt wird, wenn die Verbindung zum Remote Config-Backend-Server unterbrochen wird, fügen Sie Ihrer App Standardwerte für jeden Parameter hinzu. Fügen Sie dazu eine
default_configin Ihreinit_server_template- oderget_server_template-Vorlagenfunktion ein:template = remote_config.init_server_template({ default_config: { 'model_name': "gemini-pro", 'generation_config': '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', 'preamble_prompt': "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }) # Load Remote Config asyncio.run(template.load())Eine weitere Möglichkeit zum Initialisieren einer Vorlage besteht darin, die Funktion
get_server_templatezu verwenden, um die erforderliche Servervorlage abzurufen. Sie können diese Vorlage mit der Funktiontemplate.to_jsonin ein JSON-Format konvertieren. Diese JSON-Vorlage kann lokal gespeichert werden. Anschließend können Sie diese JSON-Vorlage mit der Funktioninit_server_templateinitialisieren.Nachdem die Vorlage geladen wurde, können Sie mit
template.evaluate()Parameter und Werte aus der Vorlage importieren:# Add template parameters to config config = template.evaluate()Optional: Wenn Sie Bedingungen in Ihrer Remote Config-Vorlage festlegen, definieren und geben Sie die gewünschten Werte an:
- Wenn Sie Prozentbedingungen verwenden, fügen Sie die
randomization_id, die Sie zum Auswerten Ihrer Bedingung(en) verwenden möchten, in die Funktiontemplate.evaluate()ein. - Wenn Sie benutzerdefinierte Signale verwenden, definieren Sie die Attribute und ihre Werte. Benutzerdefinierte Signale sind mit dem Firebase Admin Python SDK v6.7.0 und höher verfügbar.
Sie können beispielsweise eine Firebase-Installations-ID als
randomization_idoder eine Nutzer-ID festlegen, um dafür zu sorgen, dass jeder Nutzer, der Ihren Server kontaktiert, der richtigen zufälligen Gruppe hinzugefügt wird.versionkann als benutzerdefiniertes Signal verwendet werden, um bestimmte Clientversionen auszurichten, undplatformals benutzerdefiniertes Signal, um die Clientplattform auszurichten.Weitere Informationen zu Bedingungen finden Sie unter Bedingungsregeltypen.
# Add template parameters to `config`. Evaluates the # template and returns the parameter value assigned to # the group assigned to the {randomization_id} and version. config = template.evaluate({ 'randomization_id': "2ac93c28-c459-4760-963d-a3974ec26c04", 'version': "1.0", 'platform': "Android" })- Wenn Sie Prozentbedingungen verwenden, fügen Sie die
Extrahieren Sie als Nächstes die benötigten Parameterwerte aus der Konfigurationskonstante. Verwenden Sie
getters, um die Werte aus Remote Config in das erwartete Format umzuwandeln. Die folgenden Typen werden unterstützt:- Boolesch:
get_bool - Ganzzahl:
get_int - Gleitkommazahl:
get_float - String:
get_string - Wertquelle:
get_value_source
Wenn Sie beispielsweise Vertex AI auf Ihrem Server implementieren und das Modell und die Modellparameter ändern möchten, können Sie Parameter für
model_nameundgeneration_configkonfigurieren. Hier ist ein Beispiel dafür, wie Sie auf die Werte von Remote Config zugreifen können:# Replace defaults with values from Remote Config. generation_config = json.loads(config.get_string('generation_config')) is_ai_enabled = config.get_bool('is_ai_enabled') model = config.get_string('model_name') # Generates a prompt comprised of the Remote Config # parameter and prepends it to the user prompt. prompt = f"{config.get_string('preamble_prompt')}{req.args.get('prompt')}"- Boolesch:
Wenn Ihr Server lange ausgeführt wird (im Gegensatz zu einer serverlosen Umgebung), laden Sie die Vorlage regelmäßig neu, um sicherzustellen, dass Sie die aktuelle Vorlage vom Remote Config-Server abrufen.
Schritt 4: Serverspezifische Parameterwerte in Remote Config festlegen
Erstellen Sie als Nächstes eine Remote Config-Servervorlage und konfigurieren Sie Parameter und Werte, die in Ihrer App verwendet werden sollen.
So erstellen Sie eine serverspezifische Remote Config-Vorlage:
- Öffnen Sie die Seite Firebase Console Remote Config Parameter und wählen Sie im Menü Client/Server die Option Server aus.
- Definieren Sie Remote Config-Parameter mit denselben Namen und Datentypen wie die Parameter, die Sie in Ihrer App definiert haben, und geben Sie Werte an. Diese Werte überschreiben die
default_config, die Sie in Serveranwendung konfigurieren festgelegt haben, wenn Sie die Vorlage abrufen und auswerten und diese Werte Ihren Variablen zuweisen. - Optional können Sie Bedingungen festlegen, um Werte dauerhaft auf eine zufällige Stichprobe von Instanzen oder benutzerdefinierten Signalen anzuwenden, die Sie definieren. Weitere Informationen zu Bedingungen finden Sie unter Typen von Bedingungsregeln.
- Wenn Sie alle Parameter hinzugefügt haben, klicken Sie auf Änderungen veröffentlichen.
- Prüfen Sie die Änderungen und klicken Sie noch einmal auf Änderungen veröffentlichen.
Schritt 5: Mit Cloud Functions oder Cloud Run bereitstellen
Wenn Ihre Serveranwendung einfach und ereignisgesteuert ist, sollten Sie Ihren Code mit Cloud Functions bereitstellen. Beispiel: Sie haben eine App, die auf einer generativen KI-API (z. B. Google AI oder Vertex AI) basierende Dialoge mit Charakteren enthält. In diesem Fall können Sie die Logik für die Bereitstellung des großen Sprachmodells in einer Funktion hosten, die Ihre App bei Bedarf aufruft.
Eine Lösung, die Cloud Functions der 2. Generation mit serverseitigem Remote Config verwendet, finden Sie unter Serverseitiges Remote Config mit Cloud Functions und Vertex AI verwenden.
Weitere Informationen zum Bereitstellen Ihrer App mit Cloud Functions finden Sie unter Erste Schritte: Erste Funktionen schreiben, testen und bereitstellen.
Andernfalls sollten Sie Cloud Run in Betracht ziehen. Wenn Sie Ihre Server-App mit Cloud Run bereitstellen möchten, folgen Sie der Anleitung unter Kurzanleitung: Python-Dienst in Cloud Run bereitstellen.
Weitere Informationen zu den besten Anwendungsfällen für Cloud Run und Cloud Functions finden Sie unter Cloud Functions oder Cloud Run: Was kommt wann zum Einsatz?.