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 SDK Firebase dla Google Analytics.

    Jawa

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.3')
    
        // 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 używać zestawienia komponentów 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.2'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.3')
    
        // 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 używać zestawienia komponentów 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.2'
    }
    

Pobierz pojedynczy obiekt Remote Config

Uzyskaj 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 Twojej 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: