Catch up on everthing we announced at this year's Firebase Summit. Learn more

Erste Schritte mit Firebase Remote Config

Sie können Firebase Remote Config verwenden, um Parameter in Ihrer App zu definieren und ihre Werte in der Cloud zu aktualisieren, sodass Sie das Aussehen und Verhalten Ihrer App ändern können, ohne ein App-Update zu verteilen. Dieser Leitfaden führt Sie durch die einzelnen Schritte , um loszulegen und bietet einige Beispiel - Code, die alle zu klonen oder Download von der zur Verfügung Firebase / quickstart-android GitHub - Repository.

Firebase und das Remote Config SDK zu Ihrer App hinzufügen

  1. Wenn Sie nicht bereits haben, fügen Sie Firebase zu dem Android - Projekt .

  2. Für Remote - Config wird Google Analytics für die erforderlichen bedingte Ausrichtung der App - Instanzen zu Benutzereigenschaften, Zielgruppen und Firebase Prognosen. Stellen Sie sicher , dass Sie Google Analytics ermöglichen in Ihrem Projekt.

  3. Mit Hilfe der Firebase Android BoM , erklärt die Abhängigkeit für den Remote Config Android - Bibliothek in Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ).

    Außerdem müssen Sie beim Einrichten von Analytics das Firebase SDK für Google Analytics zu Ihrer App hinzufügen.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
    
        // Declare 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'
    }
    

    Durch die Verwendung des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

    (Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

    dependencies {
        // Declare 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:21.0.1'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.0')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Durch die Verwendung des Firebase Android BoM werden, Ihre App immer kompatible Versionen der Firebase Android - Bibliotheken verwenden.

    (Alternative) Deklarieren Firebase Bibliothek Abhängigkeiten , ohne die BoM mit

    Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.

    Beachten Sie, dass , wenn Sie mehrere Firebase Bibliotheken in Ihrer Anwendung verwenden wir mit der BoM empfehlen Bibliothek Versionen zu verwalten, die sicherstellt , dass alle Versionen kompatibel sind.

    dependencies {
        // Declare 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-ktx:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    

Holen Sie sich das Remote Config-Singleton-Objekt

Rufen Sie eine Remote Config-Objektinstanz ab und legen Sie das Mindestabrufintervall fest, um häufige Aktualisierungen zu ermöglichen:

Java

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin+KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

Das Singleton-Objekt wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte aus dem Back-End abzurufen und zu steuern, wann abgerufene Werte für Ihre App verfügbar gemacht werden.

Während der Entwicklung wird empfohlen, ein relativ niedriges Mindestabrufintervall festzulegen. Siehe Throttling für weitere Informationen.

In-App-Standardparameterwerte festlegen

Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, damit sich Ihre App wie beabsichtigt verhält, bevor sie eine Verbindung mit dem Remote Config-Back-End herstellt, und damit Standardwerte verfügbar sind, wenn im Back-End keine festgelegt sind.

  1. Definieren Sie einen Satz von Parameternamen und Standard - Parameterwerten mit einem Map - Objekt oder eine XML - res/xml Ressource - Datei gespeichert in Ihrem App res/xml - Ordnern. Der Remote Config Quick - Beispiel App nutzt eine XML - Datei Standard - Parameternamen und Werte zu definieren.
  2. Fügen Sie diese Werte an das Remote - Config - Objekt setDefaultsAsync(int) , wie hier gezeigt:

Java

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin+KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Abrufen von Parameterwerten zur Verwendung in Ihrer App

Jetzt können Sie Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie Werte im Back-End festlegen, abrufen und dann aktivieren, stehen diese Werte Ihrer App zur Verfügung. Andernfalls erhalten Sie die Parameterwerte in-app konfiguriert mit setDefaultsAsync(int) . Rufen Sie zum Abrufen dieser Werte die unten aufgeführte Methode auf, die dem von Ihrer App erwarteten Datentyp zugeordnet ist, und geben Sie den Parameterschlüssel als Argument an:

Parameterwerte im Remote Config Backend einstellen

Mit Hilfe der Konsole Firebase oder die Remote - Back - End - Config - APIs können Sie neue serverseitige Standardwerte erstellen , die überschreiben die In-App - Werte nach Ihrer gewünschten Bedingungslogik oder Benutzer - Targeting. In diesem Abschnitt werden die Schritte der Firebase-Konsole zum Erstellen dieser Werte beschrieben.

  1. In der Firebase Konsole , öffnen Sie Ihr Projekt.
  2. Wählen Sie Remote Config aus dem Menü die Remote Config - Dashboard anzuzeigen.
  3. 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 schließlich den entsprechenden In-App-Standardwert überschreibt) und Sie können auch bedingte Werte festlegen. Um mehr zu erfahren, siehe Remote - Config - Parameter und Bedingungen .

Werte abrufen und aktivieren

  1. Um Parameterwerte aus dem Remote - Config - Backend, rufen Sie das Fetch fetch() Methode. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt gespeichert.
  2. Um abgerufenen Parameterwerte in Ihrer App zur Verfügung, rufen Sie die activate() Methode.

    Für Fälle , in denen Sie holen wollen und aktivieren Werte in einem Aufruf, können Sie eine verwenden fetchAndActivate() Anforderung an Werte aus dem Remote - Config - Backend abzurufen und in der App zur Verfügung zu stellen:

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

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

Da sich diese aktualisierten Parameterwerte auf das Verhalten und die Darstellung Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der eine reibungslose Erfahrung für Ihren Benutzer gewährleistet, z. B. beim nächsten Öffnen der App durch den Benutzer. Siehe Remote - Config Ladestrategien für weitere Informationen und Beispiele.

Drosselung

Wenn eine App zu oft in einer kurzen Zeitperiode holt, holen Anrufe werden gedrosselt und das SDK liefert FirebaseRemoteConfigFetchThrottledException . Vor SDK-Version 17.0.0 lag das Limit bei 5 Abrufanforderungen in einem 60-Minuten-Fenster (neuere Versionen haben mehr zulässige Limits).

Während der App-Entwicklung möchten Sie möglicherweise Konfigurationen sehr häufig (viele Male pro Stunde) abrufen und aktivieren, damit Sie Ihre App schnell entwickeln und testen können. Um mit bis zu 10 Entwicklern schnelle Iteration an einem Projekt aufnehmen, können Sie vorübergehend einstellen ein FirebaseRemoteConfigSettings mit einem niedrigen Mindest Objekt holt Intervall ( setMinimumFetchIntervalInSeconds ) in Ihrer Anwendung.

Das standardmäßige Mindestabrufintervall für Remote Config beträgt 12 Stunden, was bedeutet, dass Konfigurationen innerhalb eines 12-Stunden-Fensters nicht mehr als einmal vom Back-End abgerufen werden, unabhängig davon, wie viele Abrufaufrufe tatsächlich getätigt werden. Insbesondere wird das minimale Abrufintervall in der folgenden Reihenfolge bestimmt:

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

So stellt die minimale Abrufintervall auf einen benutzerdefinierten Wert, Verwendung FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Nächste Schritte

Wenn Sie nicht bereits haben, erkunden Sie die Remote - Config Use Cases , und werfen Sie einen Blick auf einige der wichtigsten Konzepte und fortgeschrittene Strategien Dokumentation, einschließlich: