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

Zacznij korzystać ze zdalnej konfiguracji Firebase

Za pomocą zdalnej konfiguracji Firebase możesz definiować parametry w swojej aplikacji i aktualizować ich wartości w chmurze, co pozwala modyfikować wygląd i zachowanie aplikacji bez rozpowszechniania aktualizacji aplikacji. Ten poradnik przeprowadzi Cię przez kolejne etapy zacząć i zapewnia pewne przykładowy kod, z których wszystkie są dostępne dla klonu lub pobrać z Firebase / quickstart-android GitHub repozytorium.

Dodaj Firebase i pakiet SDK zdalnej konfiguracji do swojej aplikacji

  1. Jeśli tego nie zrobiłeś, dodaj Firebase do projektu Android .

  2. Remote Config, Google Analytics jest wymagany do warunkowego kierowanie wystąpień aplikacji do właściwości użytkownika, odbiorców i podpowiedzi Firebase. Upewnij się, że umożliwiają Google Analytics w projekcie.

  3. Korzystanie z Firebase Android Bom , deklarują zależność do zdalnej konfiguracji biblioteki Android w module (app szczebla) Gradle plik (zazwyczaj app/build.gradle ).

    Ponadto w ramach konfiguracji Analytics musisz dodać do swojej aplikacji pakiet Firebase SDK dla Google Analytics.

    Jawa

    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'
    }
    

    Korzystając z Firebase Bom Android , aplikacja będzie zawsze używać kompatybilne wersje bibliotek Firebase Android.

    (Alternatywna) Stwierdzenie Firebase zależności biblioteki bez użycia BOM

    Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

    Należy pamiętać, że w przypadku korzystania z wielu bibliotek Firebase w swojej aplikacji, zalecamy korzystania z BOM do zarządzania wersjami biblioteki, co gwarantuje, że wszystkie wersje są kompatybilne.

    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'
    }
    

    Korzystając z Firebase Bom Android , aplikacja będzie zawsze używać kompatybilne wersje bibliotek Firebase Android.

    (Alternatywna) Stwierdzenie Firebase zależności biblioteki bez użycia BOM

    Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

    Należy pamiętać, że w przypadku korzystania z wielu bibliotek Firebase w swojej aplikacji, zalecamy korzystania z BOM do zarządzania wersjami biblioteki, co gwarantuje, że wszystkie wersje są kompatybilne.

    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'
    }
    

Uzyskaj pojedynczy obiekt Remote Config

Pobierz instancję obiektu Zdalnej konfiguracji i ustaw minimalny interwał pobierania, aby umożliwić częste odświeżanie:

Jawa

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)

Obiekt singleton służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z zaplecza i kontrolowania, kiedy pobrane wartości są udostępniane aplikacji.

Podczas programowania zaleca się ustawienie stosunkowo niskiego minimalnego interwału pobierania. Zobacz dławienia , aby uzyskać więcej informacji.

Ustaw domyślne wartości parametrów w aplikacji

Możesz ustawić domyślne wartości parametrów w aplikacji w obiekcie Zdalna konfiguracja, aby aplikacja zachowywała się zgodnie z przeznaczeniem, zanim nawiąże połączenie z zapleczem zdalnej konfiguracji, i aby wartości domyślne były dostępne, jeśli nie są ustawione w zapleczu.

  1. Określenie zestawu nazw parametrów i domyślnych wartości parametrów przy użyciu Map obiekt lub plik XML zasobów przechowywanych w aplikacji res/xml folderu. Remote Config QuickStart przykładowy używa App jest plik XML do definiowania domyślnych nazw parametrów i wartości.
  2. Dodać te wartości do zdalnego obiekt konfiguracji za pomocą setDefaultsAsync(int) , jak przedstawiono poniżej:

Jawa

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin+KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Pobierz wartości parametrów do użycia w swojej aplikacji

Teraz możesz pobrać wartości parametrów z obiektu Remote Config. Jeśli ustawisz wartości w backendzie, pobierzesz je, a następnie aktywujesz, te wartości będą dostępne dla Twojej aplikacji. W przeciwnym razie, można uzyskać wartości parametrów w aplikacji skonfigurowane przy użyciu setDefaultsAsync(int) . Aby uzyskać te wartości, wywołaj metodę wymienioną poniżej, która mapuje typ danych oczekiwany przez Twoją aplikację, podając klucz parametru jako argument:

Ustaw wartości parametrów w zapleczu Zdalnej konfiguracji

Korzystanie z konsoli Firebase lub do zdalnego API backend Config , można tworzyć nowe wartości domyślnych po stronie serwera, które zastępują wartości w aplikacji według żądanego logika lub użytkownik warunkowy kierowania. W tej sekcji opisano kroki konsoli Firebase służące do tworzenia tych wartości.

  1. W konsoli Firebase otwórz projekt.
  2. Wybierz Remote Config z menu, aby zobaczyć pulpit zdalnego Config.
  3. Zdefiniuj parametry o takich samych nazwach, jak parametry zdefiniowane w Twojej aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi odpowiednią wartość domyślną w aplikacji), a także możesz ustawić wartości warunkowe. Aby dowiedzieć się więcej, zobacz Remote Config parametrów i warunków .

Pobierz i aktywuj wartości

  1. Aby sprowadzić wartości parametrów ze zdalnego konf backend wywołać fetch() sposobu. Wszelkie wartości ustawione w zapleczu są pobierane i przechowywane w obiekcie Remote Config.
  2. Aby sprowadzone wartości parametrów dostępnych aplikacji, należy wywołać activate() metody.

    W przypadkach, w których chcemy się pobrać i aktywować wartości w jednej rozmowy, można użyć fetchAndActivate() wniosek do pobierania wartości z Remote Config backend i udostępnić je do aplikacji:

    Jawa

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

Ponieważ te zaktualizowane wartości parametrów wpływają na zachowanie i wygląd aplikacji, należy aktywować pobrane wartości w czasie, który zapewnia płynne działanie użytkownika, na przykład przy następnym otwarciu aplikacji przez użytkownika. Zobacz Remote Config strategie ładowania Więcej informacji i przykładów.

dławienie

Jeśli aplikacja pobiera zbyt wiele razy w krótkim okresie czasu, sprowadzić rozmowy są dławione i SDK wraca FirebaseRemoteConfigFetchThrottledException . Przed wersją SDK 17.0.0 limit wynosił 5 żądań pobrania w 60-minutowym oknie (nowsze wersje mają bardziej liberalne limity).

Podczas tworzenia aplikacji możesz chcieć pobierać i aktywować konfiguracje bardzo często (wiele razy na godzinę), aby umożliwić szybką iterację podczas tworzenia i testowania aplikacji. Aby pomieścić szybki iteracji nad projektem aż do 10 programistów, można chwilowo ustawić a FirebaseRemoteConfigSettings obiekt z niskim minimum sprowadzić przedziale ( setMinimumFetchIntervalInSeconds ) w swojej aplikacji.

Domyślny minimalny interwał pobierania dla Zdalnej konfiguracji to 12 godzin, co oznacza, że ​​konfiguracje nie będą pobierane z zaplecza więcej niż raz w 12-godzinnym oknie, niezależnie od liczby faktycznie wykonanych wywołań pobierania. W szczególności minimalny interwał pobierania jest określany w następującej kolejności:

  1. Parametr w fetch(long)
  2. Parametr w FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. Domyślna wartość 12 godzin

Aby ustawić minimalny odstęp sprowadzić do wartości niestandardowego, użyj FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Następne kroki

Jeśli nie masz już, odkrywania Remote Config przypadków użycia , i spojrzeć na niektóre z kluczowych pojęć i zaawansowanej dokumentacji strategii, w tym: