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 .
Dodaj Firebase i pakiet SDK zdalnej konfiguracji do swojej aplikacji
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
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.
Za pomocą Firebase Android BoM zadeklaruj zależność dla biblioteki Remote Config Android w pliku Gradle modułu (na poziomie aplikacji) (zwykle
app/build.gradle
).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.3.1') // 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 Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase 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.
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 { // 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.1.1' implementation 'com.google.firebase:firebase-analytics:21.1.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.3.1') // 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 Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.
(Alternatywnie) Zadeklaruj zależności biblioteki Firebase 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.
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 { // 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.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:21.1.0' }
Pobierz 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.
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.
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
Na karcie Parametry otwórz menu i wybierz opcję Pobierz wartości domyślne .
Po wyświetleniu monitu włącz plik .xml dla Androida , a następnie kliknij Pobierz plik .
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)
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 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:
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.
- W konsoli Firebase otwórz projekt.
- Wybierz Zdalna konfiguracja z menu, aby wyświetlić pulpit Zdalnej konfiguracji.
- 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 .
Pobierz i aktywuj wartości
- 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. 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:
- Parametr w
fetch(long)
- Parametr w
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
- Domyślna wartość 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 Zdalnej konfiguracji i zapoznaj się z niektórymi kluczowymi koncepcjami i dokumentacją zaawansowanych strategii, w tym: