| Plattform auswählen : | iOS+ Android Web Flutter Unity C++ |
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 zu verteilen. In dieser Anleitung werden die ersten Schritte beschrieben und Beispielcode bereitgestellt, der im GitHub-Repository firebase/quickstart-android zum Klonen oder Herunterladen verfügbar ist.
Schritt 1: Firebase und das Remote Config SDK in Ihrer App hinzufügen
Falls noch nicht geschehen, fügen Sie Ihrem Android- Projekt Firebase hinzu.
Für Remote Config, Google Analytics benötigen Sie um das bedingte Targeting von App-Instanzen auf Nutzereigenschaften und Zielgruppen zu ermöglichen. Achten Sie darauf, dass Sie aktivieren Google Analytics in Ihrem Projekt.
Fügen Sie in der Gradle-Datei Ihres Moduls (auf Anwendungsebene) (in der Regel
<project>/<app-module>/build.gradle.ktsoder<project>/<app-module>/build.gradle) Abhängigkeiten für die Remote Config und Analytics Bibliotheken für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Bibliotheksversionsverwaltung zu steuern.Im Rahmen der Einrichtung von Analytics müssen Sie Ihrer App auch das Firebase SDK für Google Analytics hinzufügen.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.12.0")) // Add the dependencies for the Remote Config and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config")
implementation("com.google.firebase:firebase-analytics") }Mit der Firebase Android BoM, haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie die Version jeder Firebase-Bibliothek in der entsprechenden Abhängigkeitszeile angeben.
Beachten Sie, dass wir dringend empfehlen, die BoM zur Verwaltung der Bibliotheksversionen zu verwenden, wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden. So wird sichergestellt, dass alle Versionen kompatibel sind.
dependencies { // Add the dependencies for the Remote Config and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-config:23.0.1")
implementation("com.google.firebase:firebase-analytics:23.2.0") }
Schritt 2: Remote Config Singleton-Objekt erstellen
Rufen Sie eine Remote Config Objektinstanz ab und legen Sie das Mindestabrufintervall fest, um häufige Aktualisierungen zu ermöglichen:
Kotlin
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Das Singleton-Objekt wird verwendet, um Standardparameterwerte in der App zu speichern, aktualisierte Parameterwerte aus dem Backend abzurufen und zu steuern, wann abgerufene Werte für Ihre App verfügbar gemacht werden.
Während der Entwicklung empfiehlt es sich, ein relativ niedriges Mindestabrufintervall festzulegen. Weitere Informationen finden Sie unter Drosselung.
Schritt 3: Standardparameterwerte in der App festlegen
Sie können Standardparameterwerte in der App im Remote Config Objekt festlegen, damit sich Ihre App wie gewünscht verhält, bevor sie eine Verbindung zum Remote Config Backend herstellt. Außerdem sind so Standardwerte verfügbar, wenn im Backend keine festgelegt sind.
Definieren Sie eine Reihe von Parameternamen und Standardparameterwerten mit einem Map-Objekt oder einer XML-Ressourcen datei, die im Ordner
res/xmlIhrer App gespeichert ist. In der Remote Config Kurzanleitung Beispiel-App wird eine XML-Datei verwendet, um Standardparameternamen und -werte zu definieren.Wenn Sie bereits Backend-Parameterwerte konfiguriert haben, können Sie eine generierte XML-Datei mit allen Standardwerten herunterladen und im Verzeichnis
res/xmlIhrer App speichern:Remote ConfigREST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=XML -o remote_config_defaults.xml
Sie können ein Bearertoken generieren, indem Sie den folgenden Befehl mit der Google Cloud CLI oder Cloud Shell ausführen:
gcloud auth print-access-tokenDieses Token ist nur kurz gültig. Wenn Sie einen Authentifizierungsfehler erhalten, müssen Sie es möglicherweise neu generieren.
Firebase console
Öffnen Sie auf dem Tab „Parameter“ das Menü und wählen Sie Standardwerte herunterladen aus.
Aktivieren Sie bei entsprechender Aufforderung .xml für Android und klicken Sie dann auf Datei herunterladen.
Fügen Sie diese Werte dem Remote Config Objekt mit
setDefaultsAsync(int)hinzu, wie unten gezeigt:Kotlin
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Schritt 4: Parameterwerte zur Verwendung in Ihrer App abrufen
Jetzt können Sie Parameterwerte aus dem Remote Config Objekt abrufen. Wenn Sie
Werte im Backend festlegen, sie abrufen und dann aktivieren, sind diese Werte
für Ihre App verfügbar. Andernfalls erhalten Sie die Parameterwerte in der App, die konfiguriert
wurden
setDefaultsAsync(int).
Rufen Sie die Werte mit der Methode ab, die im folgenden Code auf den von Ihrer App erwarteten Datentyp verweist. Geben Sie den Parameterschlüssel als Argument an:
Schritt 5: Parameterwerte im Remote Config Backend festlegen
Über die Firebase Console oder die Remote Config Backend APIs, können Sie neue serverseitige Standard Werte erstellen, die die Werte in der App gemäß Ihrer gewünschten bedingten Logik oder Nutzerausrichtung überschreiben. In diesem Abschnitt werden die Firebase Console-Schritte beschrieben, mit denen Sie diese Werte erstellen.
- Ö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, die Sie in Ihrer App definiert haben. Für jeden Parameter können Sie einen Standardwert festlegen, der den entsprechenden Standardwert in der App überschreibt. Außerdem können Sie bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote Config Parameter und Bedingungen.
Wenn Sie benutzerdefinierte Signal bedingungen verwenden, definieren Sie die Attribute und ihre Werte. In den folgenden Beispielen wird gezeigt, wie Sie eine benutzerdefinierte Signalbedingung definieren.
Kotlin
val customSignals = customSignals { put("city", "Tokyo") put("preferred_event_category", "sports") } remoteConfig.setCustomSignals(customSignals)
Java
CustomSignals customSignals = new CustomSignals.Builder() .put("city", "Tokyo") .put("preferred_event_category", "sports") .build(); mFirebaseRemoteConfig.setCustomSignals(customSignals);
Schritt 6: Werte abrufen und aktivieren
- Rufen Sie die
fetch()Methode auf, um Parameterwerte aus dem Remote Config Backend abzurufen. Alle Werte, die Sie im Backend festgelegt haben, werden abgerufen und im Remote Config Objekt gespeichert. Rufen Sie die
activate()Methode auf, um abgerufene Parameterwerte für Ihre App verfügbar zu machen.Wenn Sie Werte in einem Aufruf abrufen und aktivieren möchten, können Sie mit einer
fetchAndActivate()Anfrage Werte aus dem Remote Config Backend abrufen und sie für die App verfügbar machen:Kotlin
remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result Log.d(TAG, "Config params updated: $updated") Toast.makeText( this, "Fetch and activate succeeded", Toast.LENGTH_SHORT, ).show() } else { Toast.makeText( this, "Fetch failed", Toast.LENGTH_SHORT, ).show() } displayWelcomeMessage() }
Java
mFirebaseRemoteConfig.fetchAndActivate() .addOnCompleteListener(this, new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { if (task.isSuccessful()) { boolean updated = task.getResult(); Log.d(TAG, "Config params updated: " + updated); Toast.makeText(MainActivity.this, "Fetch and activate succeeded", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "Fetch failed", Toast.LENGTH_SHORT).show(); } displayWelcomeMessage(); } });
Da sich diese aktualisierten Parameterwerte auf das Verhalten und das Erscheinungsbild von Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der für den Nutzer reibungslos ist, z. B. beim nächsten Öffnen der App. Weitere Informationen und Beispiele finden Sie unter Remote Config-Ladestrategien.
Schritt 7: In Echtzeit auf Updates warten
Nachdem Sie Parameterwerte abgerufen haben, können Sie mit Remote Config in Echtzeit auf Updates aus dem Remote Config-Backend warten.Remote ConfigRemote Config Echtzeit Remote Config signalisiert verbundenen Geräten, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem Sie eine neue Remote Config Version veröffentlicht haben.
Echtzeit-Updates werden vom Firebase SDK für Android ab Version 21.3.0 ( Firebase BoM ab Version 31.2.4) unterstützt.
Verwenden Sie in Ihrer App
addOnConfigUpdateListener(), um auf Updates zu warten und neue Parameterwerte automatisch abzurufen. Implementieren Sie denonUpdate()-Callback, um die aktualisierte Konfiguration zu aktivieren.Kotlin
remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener { override fun onUpdate(configUpdate : ConfigUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.updatedKeys); if (configUpdate.updatedKeys.contains("welcome_message")) { remoteConfig.activate().addOnCompleteListener { displayWelcomeMessage() } } } override fun onError(error : FirebaseRemoteConfigException) { Log.w(TAG, "Config update error with code: " + error.code, error) } })
Java
mFirebaseRemoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() { @Override public void onUpdate(ConfigUpdate configUpdate) { Log.d(TAG, "Updated keys: " + configUpdate.getUpdatedKeys()); mFirebaseRemoteConfig.activate().addOnCompleteListener(new OnCompleteListener<Boolean>() { @Override public void onComplete(@NonNull Task<Boolean> task) { displayWelcomeMessage(); } }); } @Override public void onError(FirebaseRemoteConfigException error) { Log.w(TAG, "Config update error with code: " + error.getCode(), error); } });
Wenn Sie das nächste Mal eine neue Version von Remote Config veröffentlichen, rufen Geräte , auf denen Ihre App ausgeführt wird und die auf Änderungen warten, den
ConfigUpdateListenerauf.
Drosselung
Wenn eine App innerhalb kurzer Zeit zu viele Abrufe durchführt, werden die Abrufe gedrosselt und das SDK gibt FirebaseRemoteConfigFetchThrottledException zurück.
Vor SDK-Version 17.0.0 lag das Limit bei 5 Abrufanfragen innerhalb von 60 Minuten. Neuere Versionen haben großzügigere Limits.
Während der App-Entwicklung möchten Sie möglicherweise Konfigurationen sehr
häufig abrufen und aktivieren (mehrmals pro Stunde), um Ihre App schnell zu entwickeln und
zu testen. Bei Remote Config Updates in Echtzeit wird der
Cache automatisch umgangen, wenn die Konfiguration auf dem Server aktualisiert wird. Um eine schnelle Iteration an einem Projekt mit bis zu 10 Entwicklern zu ermöglichen, können Sie in Ihrer App vorübergehend ein FirebaseRemoteConfigSettings-Objekt mit einem niedrigen Mindestabrufintervall (setMinimumFetchIntervalInSeconds) festlegen.
Das Standardmindestabrufintervall für Remote Config beträgt 12 Stunden. Das bedeutet, dass Konfigurationen unabhängig von der Anzahl der tatsächlich durchgeführten Abrufe nicht mehr als einmal innerhalb von 12 Stunden aus dem Backend abgerufen werden. Das Mindestabrufintervall wird in der folgenden Reihenfolge festgelegt:
- Der Parameter in
fetch(long) - Der Parameter in
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) - Der Standardwert von 12 Stunden
Verwenden Sie
FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long), um das Mindestabrufintervall auf einen benutzerdefinierten Wert festzulegen.