Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zacznij korzystać z Zdalnej konfiguracji Firebase na Androida

Możesz użyć Firebase Remote Config, aby zdefiniować parametry w swojej aplikacji i zaktualizować ich wartości w chmurze, umożliwiając modyfikowanie wyglądu i zachowania aplikacji bez dystrybuowania aktualizacji aplikacji. Ten przewodnik przeprowadzi Cię przez wszystkie etapy rozpoczęcia pracy i zawiera przykładowy kod, który można sklonować lub pobrać z repozytorium GitHub firebase / quickstart-android .

Dodaj Firebase i Remote Config SDK do swojej aplikacji

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

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

  3. Dodaj zależność dla biblioteki Remote Config systemu Android do pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle ).

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

    Jawa

    implementation 'com.google.firebase:firebase-config:19.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'
    

    Kotlin + KTX

    implementation 'com.google.firebase:firebase-config-ktx:19.2.0'
    implementation 'com.google.firebase:firebase-analytics-ktx:17.5.0'
    

Pobierz pojedynczy obiekt Remote Config

Pobierz instancję obiektu Remote Config i ustaw minimalny interwał pobierania, aby umożliwić częste odświeżania:

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. Aby uzyskać więcej informacji, zobacz Ograniczanie .

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

W obiekcie Remote Config można ustawić domyślne wartości parametrów w aplikacji, aby aplikacja zachowywała się zgodnie z przeznaczeniem przed nawiązaniem połączenia z zapleczem Remote Config i aby wartości domyślne były dostępne, jeśli żadna z nich nie została ustawiona 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 Szybki start zdalnej konfiguracji używa pliku XML do definiowania domyślnych nazw i wartości parametrów.
  2. Dodaj te wartości do obiektu Remote Config przy użyciu setDefaultsAsync (int) , jak pokazano:

Jawa

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin + KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

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 zapleczu, pobierzesz je, a następnie aktywujesz, te wartości będą dostępne dla Twojej aplikacji. W przeciwnym razie uzyskasz 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 aplikację, podając klucz parametru jako argument:

Ustaw wartości parametrów w zapleczu Zdalnej konfiguracji

Korzystając z konsoli Firebase lub interfejsów API zaplecza Remote Config , możesz tworzyć nowe wartości domyślne po stronie serwera, które zastępują wartości w aplikacji zgodnie z wymaganą logiką warunkową lub kierowaniem na użytkowników. Ta sekcja przeprowadzi Cię przez proces tworzenia tych wartości w konsoli Firebase.

  1. W konsoli Firebase otwórz projekt.
  2. Wybierz Remote Config z menu, aby wyświetlić panel kontrolny Remote Config.
  3. Zdefiniuj parametry o takich samych nazwach, jak parametry zdefiniowane w aplikacji. Dla każdego parametru można ustawić wartość domyślną (która ostatecznie zastąpi odpowiednią wartość domyślną w aplikacji), a także ustawić wartości warunkowe. Aby dowiedzieć się więcej, zobacz Parametry i warunki zdalnej konfiguracji .

Pobierz i aktywuj wartości

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

    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:

    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 momencie, który zapewni użytkownikowi płynne działanie, na przykład przy następnym otwarciu aplikacji przez użytkownika. Więcej informacji i przykładów znajdziesz w sekcji Strategie ładowania Remote Config .

Dławienie

Jeśli aplikacja pobiera się zbyt wiele razy w krótkim czasie, wywołania pobierania są ograniczane, a pakiet SDK zwraca FirebaseRemoteConfigFetchThrottledException . Przed wersją SDK 17.0.0 limit wynosił 5 żądań pobierania w ciągu 60 minut (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ć szybkie iteracje podczas opracowywania 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 ciągu 12 godzin, niezależnie od liczby faktycznie wykonywanych 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. Wartość domyślna 12 godzin

Aby ustawić minimalny interwał pobierania na wartość niestandardową, użyj FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Następne kroki

Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z przypadkami użycia Remote Config i zapoznaj się z niektórymi kluczowymi pojęciami i dokumentacją zaawansowanych strategii, w tym: