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 können Sie In-App-Standardparameterwerte speichern, aktualisierte Parameterwerte aus dem Remote Config-Backend abrufen und steuern, wann abgerufene Werte für Ihre App verfügbar gemacht werden. Weitere Informationen finden Sie unter Remote Config-Ladestrategien.
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 in Ihrem C++-Projekt bereits Firebase verwendet wird, 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 Ihrer App Firebase hinzugefügt haben:
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 hier gezeigt:
::firebase::remote_config::Initialize(app);
iOS+
Nachdem Sie Firebase Ihrer App hinzugefügt haben, gehen Sie so vor:
So 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 mithilfe eines
ConfigKeyValue*
-Objekts oder einesConfigKeyValueVariant*
-Objekts 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 findest du unter Standardeinstellungen für Remote Config-Vorlagen herunterladen.Fügen Sie diese Werte dem Remote Config-Objekt mit
SetDefaults()
hinzu.
Schritt 4: Parameterwerte für die Verwendung in Ihrer App abrufen
Jetzt können Sie 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 Ihr Projekt in der Firebase-Konsole.
- Wählen Sie im Menü Remote Config aus, um das Remote Config-Dashboard aufzurufen.
- Definieren Sie Parameter mit denselben Namen wie die Parameter, die Sie in Ihrer App definiert haben. Für jeden Parameter können Sie einen Standardwert, der schließlich den In-App-Standardwert überschreibt, und bedingte Werte festlegen. 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 Back-End festlegen, werden im Objekt Remote Config abgerufen und 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 Sie eine neue Remote Config-Version veröffentlicht haben.
Echtzeitaktualisierungen werden vom Firebase C++ SDK ab Version 11.0.0 und höher 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. Beim Aufruf vonActivate
werden die neu abgerufenen Werte verwendet, um eine aktualisierte Willkommensnachricht 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, rufen Geräte, auf denen Ihre App ausgeführt wird und die auf Änderungen warten, den ConfigUpdate-Listener auf.
Nächste Schritte
Sehen Sie sich die Remote Config Anwendungsfälle an und lesen Sie die Dokumentation zu wichtigen Konzepten und erweiterten Strategien, darunter: