Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Zacznij korzystać ze zdalnej konfiguracji Firebase

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.


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 przewodnik przeprowadzi Cię przez kroki, aby rozpocząć, i zawiera przykładowy kod, który można sklonować lub pobrać z repozytorium GitHub firebase/quickstart-android .

Krok 1: Dodaj Firebase i pakiet SDK zdalnej konfiguracji do swojej aplikacji

  1. Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .

  2. W przypadku Zdalnej konfiguracji Google Analytics jest wymagane do warunkowego kierowania wystąpień aplikacji na właściwości użytkownika i odbiorców. Upewnij się, że włączyłeś Google Analytics w swoim projekcie.

  3. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle ) dodaj zależność dla biblioteki Remote Config dla systemu Android. Zalecamy używanie Firebase Android BoM do kontrolowania wersji bibliotek.

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

    Java

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

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase na Androida.

    (Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z BoM

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

    Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

    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:21.1.2'
        implementation 'com.google.firebase:firebase-analytics:21.1.1'
    }
    

    Kotlin+KTX

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

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase na Androida.

    (Alternatywnie) Dodaj zależności biblioteki Firebase bez korzystania z BoM

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

    Pamiętaj, że jeśli korzystasz z wielu bibliotek Firebase w swojej aplikacji, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

    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-ktx:21.1.2'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.1.1'
    }
    

Krok 2: Uzyskaj pojedynczy obiekt Remote Config

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

Java

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

Kotlin+KTX

val remoteConfig: FirebaseRemoteConfig = 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 ograniczanie , aby uzyskać więcej informacji.

Krok 3: 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. Zdefiniuj zestaw nazw parametrów i domyślnych wartości parametrów przy użyciu obiektu Map lub pliku zasobów XML przechowywanego w folderze res/xml aplikacji. Przykładowa aplikacja szybkiego startu Zdalna konfiguracja używa pliku XML do definiowania domyślnych nazw i wartości parametrów.

    Jeśli masz już skonfigurowane wartości parametrów zaplecza Zdalnej konfiguracji, możesz pobrać wygenerowany plik XML, który zawiera wszystkie wartości domyślne, i zapisać go w katalogu res/xml aplikacji:

    RESZTA

    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
    

    Konsola Firebase

    1. Na karcie Parametry otwórz menu i wybierz opcję Pobierz wartości domyślne .

    2. Po wyświetleniu monitu włącz plik .xml dla Androida , a następnie kliknij Pobierz plik .

  2. Dodaj te wartości do obiektu Remote Config za pomocą setDefaultsAsync(int) , jak pokazano:

    Java

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

    Kotlin+KTX

    remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Krok 4: Uzyskaj 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 otrzymasz 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:

Krok 5: Ustaw wartości parametrów w zapleczu Zdalnej konfiguracji

Korzystając z konsoli Firebase lub interfejsów API zaplecza Zdalnej konfiguracji , możesz tworzyć nowe wartości domyślne po stronie serwera, które zastępują wartości w aplikacji zgodnie z wybraną logiką warunkową lub kierowaniem na użytkownika. W tej sekcji opisano kroki konsoli Firebase służące do tworzenia tych wartości.

  1. W konsoli Firebase otwórz projekt.
  2. Wybierz Zdalna konfiguracja z menu, aby wyświetlić pulpit Zdalnej konfiguracji.
  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 Parametry i warunki zdalnej konfiguracji .

Krok 6: Pobierz i aktywuj wartości

  1. Aby pobrać wartości parametrów z zaplecza Remote Config, wywołaj metodę fetch() . Wszelkie wartości ustawione w zapleczu są pobierane i przechowywane w obiekcie Remote Config.
  2. Aby udostępnić pobrane wartości parametrów aplikacji, wywołaj metodę activate() .

    W przypadkach, w których chcesz pobrać i aktywować wartości w jednym wywołaniu, możesz użyć fetchAndActivate() , aby pobrać wartości z zaplecza Zdalnej konfiguracji i udostępnić je aplikacji:

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

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 strategie ładowania Zdalnej konfiguracji, aby uzyskać więcej informacji i przykładów.

dławienie

Jeśli aplikacja pobiera zbyt wiele razy w krótkim czasie, wywołania pobierania są ograniczane, a zestaw SDK zwraca 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 zapewnić szybką iterację w projekcie z maksymalnie 10 deweloperami, możesz tymczasowo ustawić obiekt FirebaseRemoteConfigSettings z niskim minimalnym interwałem pobierania ( 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 interwał pobierania na wartość niestandardową, użyj FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Następne kroki

If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: