Mit Firebase Remote Config können Sie Parameter in Ihrer App definieren und ihre Werte in der Cloud aktualisieren. So können Sie das Erscheinungsbild und das Verhalten Ihrer App ändern, ohne ein App-Update bereitzustellen.
Mit der Remote Config-Bibliothek werden Standardparameterwerte in der App gespeichert, aktualisierte Parameterwerte aus dem Remote Config-Back-End abgerufen und gesteuert, wann abgerufene Werte für Ihre App verfügbar gemacht werden. Weitere Informationen finden Sie unter Ladestrategien für Remote Config.
Schritt 1: Firebase zu Ihrer App hinzufügen
Bevor Sie Remote Config verwenden können, müssen Sie Folgendes tun:
Registrieren Sie Ihr C++-Projekt und konfigurieren Sie es für die Verwendung von Firebase.
Wenn Ihr C++-Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.
Fügen Sie Ihrem C++-Projekt das Firebase C++ SDK hinzu.
Das Hinzufügen von Firebase zu Ihrem C++-Projekt umfasst Aufgaben sowohl in der Firebase Console als auch in Ihrem geöffneten C++-Projekt. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr C++-Projekt.
Schritt 2: Remote Config zur App hinzufügen
Android
Nachdem Sie Firebase Ihrer App hinzugefügt haben, gehen Sie so vor:
Erstellen Sie eine Firebase App und geben Sie die JNI-Umgebung und die Aktivität an:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
Initialisieren Sie die Remote Config-Bibliothek wie gezeigt:
::firebase::remote_config::Initialize(app);
iOS+
Nachdem Sie Firebase Ihrer App hinzugefügt haben, gehen Sie so vor:
Erstellen Sie eine Firebase-App:
app = ::firebase::App::Create(::firebase::AppOptions());
Initialisieren Sie die Remote Config-Bibliothek wie hier gezeigt:
::firebase::remote_config::Initialize(app);
Schritt 3: In-App-Standardparameterwerte festlegen
Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, damit sich Ihre Anwendung wie beabsichtigt verhält, bevor sie eine Verbindung zum Remote Config-Back-End herstellt, und dass Standardwerte verfügbar sind, wenn keine für das Back-End festgelegt sind.
Definieren Sie eine Reihe von Parameternamen und Standardparameterwerten mit einem
ConfigKeyValue*
-Objekt oder einemConfigKeyValueVariant*
-Objekt mit der Größe des Arrays.Wenn Sie bereits Remote Config-Backendparameterwerte konfiguriert haben, können Sie eine Datei mit diesen Schlüssel/Wert-Paaren herunterladen und damit Ihr
map
-Objekt erstellen. Weitere Informationen finden Sie unter Remote Config-Standardvorlagen herunterladen.Fügen Sie diese Werte dem Remote Config-Objekt mit
SetDefaults()
hinzu.
Schritt 4: Parameterwerte für die Verwendung in Ihrer App abrufen
Sie können jetzt Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie Werte im Remote Config-Backend festgelegt, abgerufen und dann aktiviert haben, sind diese Werte für Ihre App verfügbar. Andernfalls werden die In-App-Parameterwerte zurückgegeben, die mit SetDefaults()
konfiguriert wurden.
Rufen Sie dazu die unten aufgeführte Methode auf, die dem von Ihrer App erwarteten Datentyp zugeordnet ist, und geben Sie den Parameterschlüssel als Argument an:
Schritt 5: Parameterwerte festlegen
- Öffnen Sie in der Firebase Console Ihr Projekt.
- Wählen Sie im Menü Remote Config aus, um das Remote Config-Dashboard aufzurufen.
- Definieren Sie Parameter mit denselben Namen wie die Parameter in Ihrer App. Sie können für jeden Parameter einen Standardwert und bedingte Werte festlegen, die den In-App-Standardwert überschreiben. Weitere Informationen finden Sie unter Remote Config-Parameter und -Bedingungen.
Schritt 6: Werte abrufen und aktivieren
- Wenn du Parameterwerte aus dem Remote Config-Backend abrufen möchtest, rufe die Methode
Fetch()
auf. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt im Cache gespeichert. - Wenn Sie abgerufene Parameterwerte für Ihre App verfügbar machen möchten, rufen Sie
ActivateFetched()
auf.
Schritt 7: In Echtzeit nach Updates suchen
Nachdem Sie Parameterwerte abgerufen haben, können Sie mit Remote Config in Echtzeit auf Aktualisierungen vom Remote Config-Backend warten. Remote Config signalisiert verbundenen Geräten in Echtzeit, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem eine neue Remote Config-Version veröffentlicht wurde.
Echtzeitaktualisierungen werden vom Firebase C++ SDK ab Version 11.0.0 für Android- und Apple-Plattformen unterstützt.
- Rufen Sie in Ihrer App
AddOnConfigUpdateListener
auf, um nach Updates zu suchen und neue oder aktualisierte Parameterwerte automatisch abzurufen. Im folgenden Beispiel wird auf Aktualisierungen gewartet. WennActivate
aufgerufen wird, werden die neu abgerufenen Werte verwendet, um eine aktualisierte Begrüßungsnachricht anzuzeigen.
remote_config->AddOnConfigUpdateListener( [](firebase::remote_config::ConfigUpdate&& config_update, firebase::remote_config::RemoteConfigError remote_config_error) { if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) { printf("Error listening for config updates: %d", remote_config_error); } // Search the `updated_keys` set for the key "welcome_message." // `updated_keys` represents the keys that have changed since the last // fetch. if (std::find(config_update.updated_keys.begin(), config_update.updated_keys.end(), "welcome_message") != config_update.updated_keys.end()) { remote_config->Activate().OnCompletion( [&](const firebase::Future& completed_future, void* user_data) { // The key "welcome_message" was found within `updated_keys` and // can be activated. if (completed_future.error() == 0) { DisplayWelcomeMessage(); } else { printf("Error activating config: %d", completed_future.error()); } }, nullptr); } });
Wenn Sie das nächste Mal eine neue Version Ihrer Remote Config veröffentlichen, wird der Listener für Konfigurationsupdates von Geräten aufgerufen, auf denen Ihre App ausgeführt wird und Änderungen überwacht werden.
Nächste Schritte
Sehen Sie sich die Remote Config Anwendungsfälle an und lesen Sie die Dokumentation zu wichtigen Konzepten und erweiterten Strategien, darunter: