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 Verhalten Ihrer App ändern, ohne ein App-Update bereitzustellen. In dieser Anleitung werden die ersten Schritte erläutert und es wird Beispielcode bereitgestellt, der aus dem GitHub-Repository firebase/quickstart-android geklont oder heruntergeladen werden kann.
Schritt 1: Firebase und das Remote Config SDK in die App einbinden
Falls noch nicht geschehen, Fügen Sie Ihrem Android-Projekt Firebase hinzu.
Für Remote Config ist Google Analytics erforderlich für: bedingtes Targeting von App-Instanzen Nutzereigenschaften und Zielgruppen. Achten Sie darauf, dass Sie aktivieren Google Analytics in Ihrem Projekt.
Fügen Sie in der Gradle-Datei des Moduls (auf Anwendungsebene) (in der Regel
<project>/<app-module>/build.gradle.kts
oder<project>/<app-module>/build.gradle
) die Abhängigkeit für die Remote Config-Bibliothek für Android hinzu. Wir empfehlen die Verwendung des Firebase Android BoM um die Versionsverwaltung der Bibliothek zu steuern.Bei der Einrichtung von Analytics müssen Sie außerdem das Firebase SDK hinzufügen für Google Analytics zu deiner App.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.4.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 Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion angeben in der Abhängigkeitszeile ein.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM zu verwalten. 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:22.0.0") implementation("com.google.firebase:firebase-analytics:22.1.2") }
Schritt 2: Remote Config-Singleton-Objekt abrufen
Rufen Sie eine Remote Config-Objektinstanz ab und legen Sie die minimales Abrufintervall, um häufige Aktualisierungen zu ermöglichen:
Kotlin+KTX
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 In-App-Standardparameterwerte 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, einen relativ niedrigen Mindestabrufwert festzulegen Intervall. Weitere Informationen finden Sie unter Drosselung. .
Schritt 3: Standardparameterwerte in der App festlegen
Sie können im Remote Config-Objekt In-App-Standardparameterwerte festlegen, damit sich Ihre App wie vorgesehen verhält, bevor eine Verbindung zum Remote Config-Backend hergestellt wird. Außerdem sind dann Standardwerte verfügbar, falls im Backend keine festgelegt sind.
Definieren Sie eine Reihe von Parameternamen und Standardparameterwerten mithilfe eines Map-Objekt oder ein XML-Ressourcendatei im Ordner
res/xml
deiner App gespeichert. Remote Config-Kurzanleitung Beispiel-App verwendet eine XML-Datei zum Definieren von Standardparameternamen und -werten.Wenn Sie Remote Config-Backend-Parameterwerte bereits konfiguriert haben, können Sie eine generierte XML-Datei herunterladen, die alle Standardwerte und speichern Sie sie im Verzeichnis
res/xml
Ihrer Anwendung:REST
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
Firebase Console
Öffnen Sie auf dem Tab Parameter das Menü und wählen Sie Standardwerte herunterladen aus.
Aktivieren Sie auf 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 hier gezeigt:Kotlin+KTX
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, abrufen und dann aktivieren, sind diese Werte für Ihre App verfügbar. Andernfalls werden die In-App-Parameterwerte zurückgegeben, die mit setDefaultsAsync(int)
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 im Remote Config-Backend festlegen
Mit der Firebase Console oder den Remote Config Backend-APIs können Sie neue serverseitige Standardwerte erstellen, die die In-App-Werte gemäß der gewünschten bedingten Logik oder dem Nutzer-Targeting überschreiben. Dieser Abschnitt beschreibt die Firebase-Konsolenschritte zum Erstellen dieser Werte.
- Ö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. Sie können für jeden Parameter einen Standardwert festlegen, der den entsprechenden In-App-Standardwert überschreibt. Außerdem können Sie bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote Config Parameter und Bedingungen.
Schritt 6: Werte abrufen und aktivieren
- Rufen Sie zum Abrufen von Parameterwerten aus dem Remote Config-Backend die Methode
fetch()
. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt gespeichert. Wenn Sie abgerufene Parameterwerte für Ihre App verfügbar machen möchten, rufen Sie die Methode
activate()
auf.Wenn Sie Werte in einem einzigen Aufruf abrufen und aktivieren möchten, können Sie eine
fetchAndActivate()
-Anfrage verwenden, um Werte aus dem Remote Config-Backend abzurufen und für die App verfügbar zu machen:Kotlin+KTX
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 Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der eine reibungslose Nutzung für Ihre Nutzer gewährleistet, z. B. wenn der Nutzer Ihre App das nächste Mal öffnet. Weitere Informationen und Beispiele finden Sie unter Ladestrategien für Remote Config.
Schritt 7: In Echtzeit auf Updates warten
Nachdem Sie Parameterwerte abgerufen haben, können Sie Remote Config in Echtzeit verwenden, um Warten auf Aktualisierungen vom Remote Config-Back-End. 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 SDK für Android v21.3.0+ (Firebase BoM) unterstützt. v31.2.4 und höher).
Verwenden Sie in Ihrer App
addOnConfigUpdateListener()
, um nach Updates zu suchen und neue Parameterwerte automatisch abzurufen. Implementiere denonUpdate()
-Callback, um die aktualisierte Konfiguration zu aktivieren.Kotlin+KTX
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 du das nächste Mal eine neue Version von Remote Config veröffentlichst, werden die Geräte die Ihre App ausführen und auf Änderungen warten,
ConfigUpdateListener
.
Drosselung
Wenn eine App innerhalb eines kurzen Zeitraums zu oft Daten abruft, werden Abrufaufrufe
gedrosselt und das SDK gibt
FirebaseRemoteConfigFetchThrottledException
Vor der SDK-Version 17.0.0 waren fünf Abrufanfragen in einem 60-Minuten-Fenster zulässig. In neueren Versionen sind die Limits großzügiger.
Während der App-Entwicklung kann es sinnvoll sein, Konfigurationen direkt abzurufen und zu aktivieren.
häufig (viele Male pro Stunde), damit Sie schnell iterieren können, während Sie
um Ihre App zu testen. Echtzeitaktualisierungen von Remote Config umgehen automatisch den
wenn die Konfiguration auf dem Server aktualisiert wird. Um die schnelle Wiederholung eines Projekts mit bis zu 10 Entwicklern zu ermöglichen, können Sie in Ihrer App vorübergehend ein FirebaseRemoteConfigSettings
-Objekt mit einem kurzen Mindestabrufintervall (setMinimumFetchIntervalInSeconds
) festlegen.
Das standardmäßige Mindestabrufintervall für Remote Config beträgt 12 Stunden. Das bedeutet, dass Konfigurationen innerhalb eines 12-Stunden-Zeitraums nicht mehr als einmal aus dem Backend abgerufen werden, unabhängig davon, wie viele Abrufaufrufe tatsächlich ausgeführt werden. Konkret bedeutet das Das minimale Abrufintervall wird in dieser Reihenfolge bestimmt:
- Der Parameter in
fetch(long)
- Der Parameter in
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
- Der Standardwert von 12 Stunden
Wenn Sie das Mindestabrufintervall auf einen benutzerdefinierten Wert festlegen möchten, verwenden Sie FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long)
.
Nächste Schritte
Sehen Sie sich die Remote Config an, falls Sie dies noch nicht getan haben Anwendungsfälle und sehen uns einige der Schlüsselkonzepte und Dokumentation zu erweiterten Strategien, einschließlich: