Erste Schritte mit Firebase Remote Config


Mit Firebase Remote Config kannst du Parameter in deiner App definieren und aktualisieren in der Cloud gespeichert werden, sodass Sie Darstellung und Verhalten von ohne ein App-Update zu verteilen. Dieser Leitfaden führt Sie durch die ersten Schritte und enthält einige Beispielcode, die alle zum Klonen oder Herunterladen aus dem firebase/quickstart-android auf GitHub-Repository.

Schritt 1: Firebase und das Remote Config SDK in die App einbinden

  1. Falls noch nicht geschehen, Fügen Sie Firebase zu Ihrem Android-Projekt hinzu.

  2. Für Remote Config ist Google Analytics erforderlich, 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.

  3. In der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle) Fügen Sie 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.2.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 dem Firebase Android BoM Ihre App verwendet immer kompatible Versionen der Firebase Android Libraries.

    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 in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen, Bibliotheksversionen mit der BoM zu verwalten. Dadurch wird sichergestellt, dass alle Versionen kompatibel.

    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.0")
    }
    Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Beginnt in Oktober 2023 (Firebase BoM 32.5.0) können sowohl Kotlin- als auch Java-Entwickler sind vom Modul der Hauptbibliothek abhängig (Details finden Sie in der FAQs zu dieser Initiative).

Schritt 2: Singleton-Objekt Remote Config abrufen

Erstellen Sie eine Remote Config-Objektinstanz und legen Sie das Mindestabrufintervall fest, 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 zum Speichern von In-App-Standardparameterwerten, zum Abrufen aktualisierte Parameterwerte aus dem Backend und steuern, wann abgerufene Werte die für Ihre App verfügbar sind.

Während der Entwicklung empfiehlt es sich, einen relativ niedrigen Mindestabrufbereich 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.

  1. 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 Standardparameternamen und -werte zu definieren.

    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-Konsole

    1. Unter Parameter auf, öffne das Menü und wählen Sie Standardwerte herunterladen aus.

    2. Aktivieren Sie auf Aufforderung .xml für Android und klicken Sie dann auf Datei herunterladen.

  2. 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 im Back-End, rufen Sie sie ab und aktivieren Sie sie. sind diese Werte für Ihre App verfügbar. Andernfalls erhalten Sie die In-App- Parameterwerte konfiguriert werden, setDefaultsAsync(int) 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.

  1. Öffnen Sie Ihr Projekt in der Firebase-Konsole.
  2. Wähle Remote Config aus dem Menü aus, um die Remote Config aufzurufen Dashboard.
  3. Definieren Sie Parameter mit denselben Namen wie die Parameter in Ihrer App. 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

  1. 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.
  2. Um abgerufene Parameterwerte für Ihre App verfügbar zu machen, rufen Sie die Methode activate() .

    Wenn Sie Werte in einem Aufruf abrufen und aktivieren möchten, können mit einer fetchAndActivate()-Anfrage Werte aus der Remote Config-Back-End und stellen Sie sie der App zur Verfügung:

    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();
                }
            });

Weil sich diese aktualisierten Parameterwerte auf das Verhalten und die Darstellung auswirken. Ihrer App verwenden, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, wie z. B. wenn sie Ihre Website das nächste Mal öffnen, Siehe Remote Config-Ladestrategien finden Sie weitere Informationen und Beispiele.

Schritt 7: In Echtzeit auf Updates warten

Nachdem Sie Parameterwerte abgerufen haben, können Sie mit Remote Config in Echtzeit auf Aktualisierungen vom Remote Config-Backend warten. Echtzeit Remote Config signalisiert verbundenen Geräten, wenn Updates verfügbar sind und ruft die Änderungen nach der Veröffentlichung eines neuen Remote Config automatisch ab Version.

Echtzeitaktualisierungen werden vom Firebase SDK für Android v21.3.0+ (Firebase BoM) unterstützt. v31.2.4 und höher).

  1. Verwende in deiner App addOnConfigUpdateListener(), um auf Updates zu warten und ruft automatisch alle neuen Parameterwerte ab. onUpdate() implementieren 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);
        }
    });
  2. 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 viele Abrufe durchführt, werden Abrufaufrufe gedrosselt und das SDK gibt FirebaseRemoteConfigFetchThrottledException Vor der SDK-Version 17.0.0 Limit lag bei 5 Abrufanfragen in 60 Minuten -Fenster (neuere Versionen haben stärkere Begrenzungen).

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 testen Sie Ihre App. Echtzeitaktualisierungen von Remote Config umgehen automatisch den wenn die Konfiguration auf dem Server aktualisiert wird. Um schnelle Iterationen zu ermöglichen Projekt mit bis zu 10 Entwicklern umfassen, können Sie vorübergehend eine FirebaseRemoteConfigSettings-Objekt mit niedrigem minimalem Abrufintervall (setMinimumFetchIntervalInSeconds) in Ihrer App.

Das standardmäßige Mindestabrufintervall für Remote Config beträgt 12 Stunden. Das bedeutet, dass Konfigurationen nicht öfter als einmal innerhalb von zwölf Stunden vom Back-End abgerufen werden. unabhängig davon, wie viele Abrufaufrufe erfolgen. Konkret bedeutet das Das minimale Abrufintervall wird in dieser Reihenfolge bestimmt:

  1. Der Parameter in fetch(long)
  2. Der Parameter in FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. Der Standardwert von 12 Stunden

Verwenden Sie FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long), um das minimale Abrufintervall auf einen benutzerdefinierten Wert festzulegen.

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: