1. Wprowadzenie
Ostatnia aktualizacja: 2021-03-09
Czym jest Zdalna konfiguracja Firebase?
Zdalna konfiguracja Firebase to bezpłatna usługa w chmurze, która pozwala zmienić działanie i wygląd aplikacji bez potrzeby pobierania aktualizacji aplikacji przez użytkowników. Dzięki Zdalnej konfiguracji tworzysz w aplikacji domyślne wartości, które kontrolują jej zachowanie i wygląd. Później możesz użyć konsoli Firebase lub backendowych interfejsów API Zdalnej konfiguracji, żeby nadpisywać domyślne wartości w aplikacjach wszystkich użytkowników lub ich wybranego segmentu. Aplikacja kontroluje, kiedy aktualizacje są stosowane, i może często sprawdzać ich dostępność oraz stosować je z pomijalnym wpływem na wydajność.
Jak to działa?
Zdalna konfiguracja zawiera bibliotekę klienta, która obsługuje ważne zadania, takie jak pobieranie i buforowanie wartości parametrów, a jednocześnie umożliwia kontrolowanie, kiedy nowe wartości są aktywowane, aby wpływać na wrażenia użytkowników aplikacji. Dzięki temu możesz chronić komfort korzystania z aplikacji, kontrolując czas wprowadzania zmian.
Metody biblioteki klienta Zdalnej konfiguracjiget zapewniają pojedynczy punkt dostępu do wartości parametrów. Aplikacja pobiera wartości po stronie serwera, korzystając z tej samej logiki, której używa do pobierania domyślnych wartości w aplikacji. Dzięki temu możesz dodać do aplikacji funkcje Zdalnej konfiguracji bez pisania dużej ilości kodu.
Aby nadpisać domyślne wartości w aplikacji, użyj konsoli Firebase lub backendowych interfejsów API Zdalnej konfiguracji, aby utworzyć parametry o takich samych nazwach jak parametry używane w aplikacji. W przypadku każdego parametru możesz ustawić domyślną wartość po stronie serwera, aby nadpisać domyślną wartość w aplikacji. Możesz też utworzyć wartości warunkowe, aby nadpisać domyślną wartość w aplikacji w przypadku instancji aplikacji, które spełniają określone warunki. Ten diagram pokazuje, jak wartości parametrów są traktowane priorytetowo w backendzie Zdalnej konfiguracji i w aplikacji:

Czego się nauczysz
- Jak wdrożyć Zdalną konfigurację Firebase
- Jak używać Zdalnej konfiguracji Firebase do zmiany wartości bez aktualizowania aplikacji
Czego potrzebujesz
- Najnowsza wersja Androida Studio
- konto Firebase,
- (zalecane, ale opcjonalne) fizyczne urządzenie z Androidem do uruchamiania aplikacji;
- podstawową wiedzę o języku Java lub Kotlin;
2. Pierwsze kroki
(Opcjonalnie) Pobierz przykładowy kod
W tym ćwiczeniu utworzysz własną aplikację testową, ale jeśli chcesz zobaczyć i uruchomić istniejącą aplikację przykładową, możesz pobrać przykładowy kod szybkiego startu.
Aby pobrać cały kod do tych ćwiczeń, kliknij ten przycisk:
Rozpakuj pobrany plik ZIP. Spowoduje to rozpakowanie folderu głównego o nazwie quickstart-android-master.
…lub sklonuj repozytorium GitHub z poziomu wiersza poleceń.
$ git clone https://github.com/firebase/quickstart-android.git
Repozytorium zawiera wiele folderów. Będziemy używać folderu
config.
(Opcjonalnie) Zaimportuj przykładowy kod
Uruchom Android Studio i na ekranie powitalnym wybierz „Import project” (Importuj projekt). Następnie otwórz pobrany folder i wybierz folder
config. Następnie kliknij „Otwórz”.

Tworzenie nowego projektu na Androida
- W Android Studio rozpocznij nowy projekt.
- Wybierz podstawową aktywność
- Na ekranie „Skonfiguruj projekt”:
- Nadaj projektowi nazwę. Nazwa pakietu i lokalizacja zapisu zostaną wygenerowane automatycznie.
- Język: Java
- Minimalny pakiet SDK 16
3. Dodawanie Firebase i Firebase Analytics do projektu na Androida
Tworzenie projektu w Firebase
Zanim dodasz Firebase do aplikacji na Androida, musisz utworzyć projekt w Firebase, aby połączyć go z tą aplikacją. Więcej informacji o projektach w Firebase znajdziesz w artykule Informacje o projektach Firebase.
- W konsoli Firebase kliknij Dodaj projekt, a następnie wybierz lub wpisz Nazwę projektu.

Jeśli masz już projekt Google Cloud Platform (GCP), możesz wybrać go w menu, aby dodać do niego zasoby Firebase.
- (Opcjonalnie) Jeśli tworzysz nowy projekt, możesz edytować identyfikator projektu.
Firebase automatycznie przypisuje unikalny identyfikator do Twojego projektu w Firebase. Więcej informacji o tym, jak Firebase używa identyfikatora projektu, znajdziesz w artykule Projekty w Firebase.
- Kliknij Dalej.
- Skonfiguruj Google Analytics w projekcie, aby optymalnie korzystać z tych usług Firebase:
- Firebase Crashlytics
- Prognozy Firebase
- Komunikacja w chmurze Firebase
- Wysyłanie wiadomości w aplikacji Firebase
- Zdalna konfiguracja Firebase
- Testy A/B Firebase
Gdy pojawi się odpowiedni komunikat, wybierz, czy chcesz użyć istniejącego konta Google Analytics, czy utworzyć nowe. Jeśli zdecydujesz się utworzyć nowe konto, wybierz lokalizację raportowania Analytics, a następnie zaakceptuj ustawienia udostępniania danych i warunki korzystania z Google Analytics w swoim projekcie.


- Kliknij Utwórz projekt (lub Dodaj Firebase, jeśli używasz istniejącego projektu GCP).
Firebase automatycznie udostępnia zasoby dla Twojego projektu w Firebase. Po zakończeniu procesu otworzy się strona przeglądu projektu w Firebase w konsoli Firebase.
Rejestrowanie aplikacji w Firebase
Mając projekt w Firebase, możesz dodać do niego swoją aplikację na Androida.
Więcej informacji o sprawdzonych metodach i kwestiach, które należy wziąć pod uwagę podczas dodawania aplikacji do projektu w Firebase, w tym o obsłudze wielu wariantów kompilacji, znajdziesz w artykule Informacje o projektach Firebase.
- Otwórz konsolę Firebase.
- U góry strony „Opis projektu” kliknij ikonę Android, aby uruchomić proces konfiguracji. Jeśli aplikacja została już dodana do projektu w Firebase, kliknij Dodaj aplikację, aby wyświetlić opcje platformy.
- Wpisz nazwę pakietu aplikacji w polu Nazwa pakietu na Androida.
- (Opcjonalnie) wpisz pseudonim aplikacji.
- Pozostaw pole SHA-1 puste, ponieważ w tym projekcie nie jest wymagany SHA-1.
- Kliknij Zarejestruj aplikację.
Dodawanie pliku konfiguracyjnego Firebase
Następnie pojawi się prośba o pobranie pliku konfiguracyjnego zawierającego wszystkie niezbędne metadane Firebase dotyczące Twojej aplikacji. Kliknij Pobierz google-services.json, aby uzyskać plik konfiguracyjny Firebase na Androida (google-services.json).


W pliku Gradle na poziomie projektu (build.gradle) dodaj reguły, aby uwzględnić wtyczkę Gradle do usług Google. Sprawdź też, czy masz repozytorium Google Maven.
Plik build.gradle na poziomie projektu (<project>/build.gradle):
buildscript {
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
}
dependencies {
// ...
// Add the following line:
classpath 'com.google.gms:google-services:4.3.5' // Google Services plugin
}
}
allprojects {
// ...
repositories {
// Check that you have the following line (if not, add it):
google() // Google's Maven repository
// ...
}
}
W pliku Gradle na poziomie modułu (aplikacji) (zwykle app/build.gradle) zastosuj wtyczkę Gradle do usług Google:
Plik build.gradle na poziomie aplikacji (<project>/<app-module>/build.gradle):
apply plugin: ‘com.android.application'
// Dodaj ten wiersz:
apply plugin: ‘com.google.gms.google-services' // Wtyczka Usług Google
android {
// ...
}
Dodawanie pakietu SDK Firebase do aplikacji na Androida
W przypadku Zdalnej konfiguracji usługa Google Analytics jest wymagana do kierowania warunkowego instancji aplikacji na odbiorców i właściwości użytkowników. Pamiętaj, aby włączyć Google Analytics w swoim projekcie.
(Zostało to już zrobione w przykładowym kodzie krótkiego wprowadzenia).
Korzystając z listy BoM Firebase dla Androida, zadeklaruj zależność z biblioteką Zdalnej konfiguracji na Androida w pliku Gradle na poziomie modułu (aplikacji) (zwykle app/build.gradle). Dzięki wykorzystaniu listy BoM Firebase dla Androida Twoja aplikacja będzie zawsze używała zgodnych wersji bibliotek Firebase na Androida.
W ramach konfigurowania Analytics musisz też dodać do aplikacji pakiet SDK Firebase dla Google Analytics. W sekcji zależności dodaj ten kod:
app/build.gradle
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:26.6.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'
}
Synchronizowanie projektu z plikami Gradle
Aby mieć pewność, że wszystkie zależności są dostępne dla aplikacji, zsynchronizuj projekt z plikami Gradle, klikając File > Sync Project with Gradle Files (Plik > Synchronizuj projekt z plikami Gradle).
4. Zapoznaj się z głównymi komponentami Zdalnej konfiguracji
Teraz omówimy kroki, które należy wykonać, aby użyć Zdalnej konfiguracji w aplikacji. Zostały one już wykonane w kodzie krótkiego wprowadzenia. Skorzystaj z tej sekcji podczas sprawdzania kodu z ćwiczenia w Codelabs z szybkiego wprowadzenia, aby zrozumieć, co się dzieje.
1. Pobierz obiekt klasy typu singleton Zdalnej konfiguracji
Pobierz instancję obiektu Zdalnej konfiguracji i ustaw minimalny interwał pobierania ustawień, aby umożliwić ich częste odświeżanie:
MainActivity.java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Obiekt singleton służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu i określania, kiedy pobrane wartości mają być udostępniane aplikacji.
Podczas programowania zalecamy ustawienie stosunkowo krótkiego minimalnego interwału pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie liczby żądań.
2. Ustawianie domyślnych wartości parametrów w aplikacji
W obiekcie Zdalnej konfiguracji możesz ustawić domyślne wartości parametrów w aplikacji, aby działała ona zgodnie z oczekiwaniami, zanim połączy się z backendem Zdalnej konfiguracji, a także aby domyślne wartości były dostępne, jeśli w backendzie nie ustawiono żadnych wartości.
Możesz zdefiniować zestaw nazw parametrów i domyślnych wartości parametrów za pomocą obiektu Map lub pliku zasobu XML przechowywanego w folderze res/xml aplikacji. Przykładowa aplikacja z krótkiego wprowadzenia do Zdalnej konfiguracji używa pliku XML do definiowania domyślnych nazw i wartości parametrów. Aby utworzyć własny plik XML:
- Utwórz folder
xmlw folderzeres.

- Kliknij prawym przyciskiem myszy nowo utworzony folder
xmli utwórz plik.

- Ustaw wartości domyślne. W następnej sekcji spróbujesz zmienić wartości domyślne w pliku XML z krótkiego przewodnika po Zdalnej konfiguracji.
- Dodaj te wartości do obiektu Zdalnej konfiguracji za pomocą metody setDefaultsAsync(int), jak pokazano poniżej:
MainActivity.java
mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
3. Uzyskiwanie wartości parametrów do użycia w aplikacji
Teraz możesz pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli ustawisz wartości w backendzie, pobierzesz je i aktywujesz, będą one dostępne dla Twojej aplikacji. W przeciwnym razie uzyskasz wartości parametrów w aplikacji skonfigurowane za pomocą metody setDefaultsAsync(int). Aby uzyskać te wartości, wywołaj metodę wymienioną poniżej, która jest mapowana na typ danych oczekiwany przez aplikację, podając klucz parametru jako argument:
4. Pobierz i aktywuj wartości
- Aby pobrać wartości parametrów z backendu Zdalnej konfiguracji, wywołaj metodę fetch(). Wszystkie wartości ustawione w backendzie są pobierane i przechowywane w obiekcie Zdalnej konfiguracji.
- Aby pobrane wartości parametrów były dostępne w aplikacji, wywołaj metodę activate(). Jeśli chcesz pobrać i aktywować wartości w jednym wywołaniu, możesz użyć żądania fetchAndActivate(), aby pobrać wartości z backendu Zdalnej konfiguracji i udostępnić je aplikacji:
MainActivity.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();
}
});
Ponieważ 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 aplikacji, np. przy następnym otwarciu aplikacji przez użytkownika. Więcej informacji i przykłady znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.
Ograniczanie
Jeśli aplikacja pobiera dane zbyt wiele razy w krótkim czasie, wywołania pobierania są ograniczane, a pakiet SDK zwraca wartość FirebaseRemoteConfigFetchThrottledException. Przed wersją 17.0.0 pakietu SDK limit wynosił 5 żądań pobierania w ciągu 60 minut (nowsze wersje mają bardziej liberalne limity).
Podczas tworzenia aplikacji możesz często (wiele razy na godzinę) pobierać i aktywować konfiguracje, aby szybko wprowadzać zmiany w trakcie tworzenia i testowania aplikacji. Aby umożliwić szybkie wprowadzanie zmian w projekcie, nad którym pracuje do 10 deweloperów, możesz tymczasowo ustawić w aplikacji obiekt FirebaseRemoteConfigSettings z krótkim minimalnym interwałem pobierania (setMinimumFetchIntervalInSeconds).
Domyślny minimalny interwał pobierania w Zdalnej konfiguracji wynosi 12 godzin. Oznacza to, że konfiguracje nie będą pobierane z backendu częściej niż raz w ciągu 12 godzin, niezależnie od tego, ile razy zostanie wywołana funkcja pobierania. Minimalny interwał pobierania jest określany w tej kolejności:
- Parametr w
fetch(long) - Parametr w
FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long) - Wartość domyślna to 12 godzin.
Aby ustawić minimalny przedział pobierania na niestandardową wartość, użyj metody FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long).
5. Zmienianie zachowania aplikacji za pomocą Zdalnej konfiguracji
Zmienianie domyślnych parametrów w aplikacji
Otwórz res/xml/remote_config_defaults.xml i zmień wartości domyślne na inne.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>loading_phrase</key>
<value>Fetching config...</value>
</entry>
<entry>
<key>welcome_message_caps</key>
<value>false</value>
</entry>
<entry>
<key>welcome_message</key>
<value>Welcome to my awesome app!</value>
</entry>
</defaultsMap>
<!-- END xml_defaults -->
Sprawdzanie zmiany domyślnej wartości w aplikacji
- Uruchom projekt w emulatorze lub na urządzeniu testowym, aby sprawdzić, czy działa prawidłowo.
- Kliknij Otwórz w przypadku wersji w języku Java lub Kotlin.

- Sprawdź wiadomość powitalną w widoku głównym.

Ustawianie wartości parametrów w backendzie Zdalnej konfiguracji
Teraz przetestujmy wysyłanie wartości za pomocą Zdalnej konfiguracji. Za pomocą konsoli Firebase lub backendowych interfejsów API Zdalnej konfiguracji możesz tworzyć nowe domyślne wartości po stronie serwera, które nadpisują wartości w aplikacji zgodnie z wybraną logiką warunkową lub kierowaniem na użytkowników. W tej sekcji opisujemy, jak utworzyć te wartości w konsoli Firebase.
- Otwórz konsolę Firebase i otwórz projekt.
- W sekcji Zaangażowanie w menu po lewej stronie kliknij Zdalna konfiguracja, aby wyświetlić panel Zdalna konfiguracja.
- W sekcji Dodaj parametr wpisz
Parameter key.w sekcjiDefault valuedodaj dowolny tekst. Następnie kliknij Dodaj parametr. W tym ćwiczeniu będziemy używać kluczy parametrów z plikures/xml/remote_config_defaults.xml. Szczegółowe informacje znajdziesz w tabeli poniżej:
Klucz parametru | Wartość domyślna ( | Opis |
loading_phrase | Pobieram konfigurację… | Ciąg tekstowy; wyświetlany podczas pobierania wartości Zdalnej konfiguracji. |
welcome_message_caps | fałsz | Wartość logiczna. Jeśli ma wartość „true”, zmienia welcome_message na wielkie litery. |
welcome_message | Witamy w mojej wspaniałej aplikacji! | Ciąg znaków; wiadomość powitalna |
Przykładowy zrzut ekranu:

- Po dodaniu parametrów kliknij „Opublikuj zmiany”.
- Ponownie uruchom aplikację na emulatorze lub urządzeniu i tym razem kliknij przycisk „Fetch Remote Welcome” (Pobierz zdalny komunikat powitalny).

- Komunikat powitalny powinien zostać zaktualizowany na podstawie parametru i wartości Zdalnej konfiguracji.
6. Gratulacje
Gratulacje! Udało Ci się zmienić wiadomość powitalną za pomocą Zdalnej konfiguracji. Istnieje wiele innych sposobów wykorzystania Zdalnej konfiguracji do zmieniania i dostosowywania aplikacji. Zapoznaj się z tymi dodatkowymi materiałami: