Za pomocą Firebase Remote Config 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 kolejne kroki i zawiera przykładowy kod.
Krok 1: Dodaj Firebase i pakiet SDK do zdalnej konfiguracji do swojej aplikacji
Zainstaluj i zainicjuj zestawy SDK Firebase dla Flutter, jeśli jeszcze tego nie zrobiłeś.
W przypadku zdalnej konfiguracji wymagana jest usługa Google Analytics do warunkowego kierowania instancji aplikacji na właściwości użytkownika i odbiorców. Upewnij się, że masz włączoną usługę Google Analytics w swoim projekcie.
Z katalogu głównego projektu Flutter uruchom następującą komendę, aby zainstalować wtyczkę Remote Config:
flutter pub add firebase_remote_config
Ponadto w ramach konfiguracji zdalnej konfiguracji musisz dodać do swojej aplikacji pakiet SDK Firebase dla Google Analytics:
flutter pub add firebase_analytics
Przebuduj swój projekt:
flutter run
Jeśli używasz zdalnej konfiguracji w systemie macOS, włącz udostępnianie pęku kluczy w Xcode.
Krok 2: Pobierz pojedynczy obiekt Remote Config
Pobierz instancję obiektu Remote Config i ustaw minimalny interwał pobierania, aby umożliwić częste odświeżanie:
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));
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 opracowywania zaleca się ustawienie stosunkowo niskiego minimalnego interwału pobierania. Aby uzyskać więcej informacji, zobacz Ograniczanie .
Krok 3: Ustaw domyślne wartości parametrów w aplikacji
Możesz ustawić domyślne wartości parametrów w aplikacji w obiekcie Remote Config, tak aby aplikacja zachowywała się zgodnie z oczekiwaniami przed połączeniem się z backendem Remote Config i aby dostępne były wartości domyślne, jeśli w backendzie nie ustawiono żadnych wartości.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Krok 4: Uzyskaj wartości parametrów do wykorzystania w swojej aplikacji
Teraz możesz uzyskać wartości parametrów z obiektu Remote Config. Jeśli ustawisz wartości w backendie, pobierzesz je, a następnie aktywujesz, te wartości będą dostępne dla Twojej aplikacji. W przeciwnym razie wartości parametrów w aplikacji zostaną skonfigurowane za pomocą setDefaults()
.
Aby uzyskać te wartości, wywołaj poniższą metodę, która odwzorowuje typ danych oczekiwany przez Twoją aplikację, podając klucz parametru jako argument:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
Krok 5: Ustaw wartości parametrów w zapleczu zdalnej konfiguracji
Korzystając z konsoli Firebase lub interfejsów API zaplecza Remote Config , możesz utworzyć nowe wartości domyślne po stronie serwera, które zastępują wartości w aplikacji zgodnie z żądaną logiką warunkową lub kierowaniem na użytkownika. W tej sekcji opisano kroki konsoli Firebase umożliwiające utworzenie tych wartości.
- W konsoli Firebase otwórz swój projekt.
- Wybierz opcję Zdalna konfiguracja z menu, aby wyświetlić pulpit nawigacyjny Zdalnej konfiguracji.
- Zdefiniuj parametry o takich samych nazwach, jak parametry zdefiniowane w aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi odpowiednią wartość domyślną w aplikacji), możesz także ustawić wartości warunkowe. Aby dowiedzieć się więcej, zobacz Parametry i warunki zdalnej konfiguracji .
Krok 6: Pobierz i aktywuj wartości
Aby pobrać wartości parametrów z zaplecza Remote Config, wywołaj metodę
fetch()
. Wszelkie wartości ustawione w backendie są pobierane i przechowywane w obiekcie Remote Config.Aby udostępnić aplikacji pobrane wartości parametrów, wywołaj metodę
activate()
.W przypadkach, gdy chcesz pobrać i aktywować wartości w jednym wywołaniu, możesz użyć żądania
fetchAndActivate()
w celu pobrania wartości z zaplecza zdalnej konfiguracji i udostępnienia ich aplikacji:await remoteConfig.fetchAndActivate();
Ponieważ te zaktualizowane wartości parametrów wpływają na zachowanie i wygląd aplikacji, należy aktywować pobrane wartości w czasie zapewniającym użytkownikowi bezproblemową obsługę, na przykład przy następnym otwarciu aplikacji. Więcej informacji i przykładów można znaleźć w artykule Strategie ładowania zdalnej konfiguracji .
Krok 7: Słuchaj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów można używać funkcji Remote Config w czasie rzeczywistym do nasłuchiwania aktualizacji z zaplecza Remote Config. Zdalna konfiguracja w czasie rzeczywistym sygnalizuje podłączonym urządzeniom dostępność aktualizacji i automatycznie pobiera zmiany po opublikowaniu nowej wersji Zdalnej konfiguracji.
Należy pamiętać, że zdalna konfiguracja w czasie rzeczywistym nie jest dostępna w Internecie.
W swojej aplikacji użyj
onConfigUpdated
, aby rozpocząć nasłuchiwanie aktualizacji i automatycznie pobierać nowe wartości parametrów.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
Następnym razem, gdy opublikujesz nową wersję Zdalnej konfiguracji, urządzenia, na których działa Twoja aplikacja i nasłuchują zmian, aktywują nową konfigurację.
Dławienie
Jeśli aplikacja zostanie pobrana zbyt wiele razy w krótkim czasie, wywołania pobierania zostaną ograniczone, a wartość właściwości lastFetchStatus
FirebaseRemoteConfig
będzie wynosić RemoteConfigFetchStatus.throttle
.
Domyślny minimalny interwał pobierania dla Zdalnej konfiguracji wynosi 12 godzin, co oznacza, że konfiguracje nie będą pobierane z zaplecza częściej niż raz w ciągu 12 godzin, niezależnie od liczby faktycznie wykonanych wywołań pobierania.
Jeśli podczas tworzenia aplikacji nie korzystasz ze zdalnej konfiguracji w czasie rzeczywistym (co zalecamy), możesz chcieć pobierać i aktywować konfiguracje bardzo często (wiele razy na godzinę), aby móc szybko wykonywać iteracje podczas opracowywania i testowania aplikacji. Aby umożliwić szybką iterację projektu z udziałem maksymalnie 10 programistów, możesz tymczasowo ustawić niski minimalny interwał pobierania za pomocą setConfigSettings()
.
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(minutes: 5),
));
Next steps
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: