Możesz użyć Firebase Remote Config do definiowania parametrów w swojej aplikacji i aktualizowania ich wartości w chmurze, co pozwala modyfikować wygląd i zachowanie aplikacji bez dystrybucji aktualizacji aplikacji. Ten przewodnik przeprowadzi Cię przez kroki, aby rozpocząć i zawiera przykładowy kod.
Krok 1: Dodaj Firebase i pakiet SDK Remote Config do swojej aplikacji
Zainstaluj i zainicjuj zestawy SDK Firebase dla Flutter, jeśli jeszcze tego nie zrobiłeś.
W przypadku zdalnej konfiguracji usługa Google Analytics jest wymagana do warunkowego kierowania instancji aplikacji na właściwości użytkowników i odbiorców. Upewnij się, że włączysz Google Analytics w swoim projekcie.
W katalogu głównym projektu Flutter uruchom następujące polecenie, aby zainstalować wtyczkę Remote Config:
flutter pub add firebase_remote_config
Ponadto w ramach konfigurowania zdalnej konfiguracji musisz dodać do swojej aplikacji pakiet Firebase SDK dla Google Analytics:
flutter pub add firebase_analytics
Przebuduj swój projekt:
flutter run
Krok 2: Pobierz pojedynczy obiekt Remote Config
Uzyskaj 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 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 Twoja aplikacja zachowywała się zgodnie z oczekiwaniami, zanim połączy się z zapleczem Zdalnej konfiguracji, i aby wartości domyślne były dostępne, jeśli żadne nie zostaną ustawione w zapleczu.
await remoteConfig.setDefaults(const {
"example_param_1": 42,
"example_param_2": 3.14159,
"example_param_3": true,
"example_param_4": "Hello, world!",
});
Krok 4: Pobierz wartości parametrów do wykorzystania w aplikacji
Teraz możesz uzyskać wartości parametrów z obiektu Remote Config. Jeśli ustawisz wartości w zapleczu, pobierzesz je, a następnie aktywujesz, wartości te będą dostępne dla Twojej aplikacji. W przeciwnym razie otrzymasz wartości parametrów w aplikacji skonfigurowane za pomocą setDefaults()
.
Aby uzyskać te wartości, wywołaj metodę wymienioną poniżej, która odwzorowuje typ danych oczekiwany przez aplikację, podając klucz parametru jako argument:
-
getBool()
-
getDouble()
-
getInt()
-
getString()
Krok 5: Ustaw wartości parametrów w zapleczu Remote Config
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żytkownika. W tej sekcji opisano kroki konsoli Firebase, które należy wykonać, aby utworzyć te 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), 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
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 Zdalna konfiguracja.Aby udostępnić pobrane wartości parametrów swojej aplikacji, wywołaj metodę
activate()
.W przypadkach, w których chcesz pobrać i aktywować wartości w jednym wywołaniu, możesz użyć żądania
fetchAndActivate()
w celu pobrania wartości z zaplecza Remote Config i udostępnienia ich aplikacji:await remoteConfig.fetchAndActivate();
Ponieważ te zaktualizowane wartości parametrów wpływają na zachowanie i wygląd Twojej aplikacji, należy aktywować pobrane wartości w czasie, który zapewni użytkownikowi bezproblemowe działanie, 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.
Krok 7: Słuchaj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów możesz użyć zdalnej konfiguracji w czasie rzeczywistym do nasłuchiwania aktualizacji z zaplecza zdalnej konfiguracji. Zdalna konfiguracja w czasie rzeczywistym wysyła do podłączonych urządzeń informacje o dostępności 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 sieci Web.
W swojej aplikacji użyj
onConfigUpdated
, aby rozpocząć nasłuchiwanie aktualizacji i automatycznie pobierać wszelkie nowe wartości parametrów.remoteConfig.onConfigUpdated.listen((event) async { await remoteConfig.activate(); // Use the new config values here. });
Gdy następnym razem opublikujesz nową wersję Zdalnej konfiguracji, urządzenia, na których działa Twoja aplikacja i nasłuchują zmian, aktywują nową konfigurację.
Ograniczanie
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 miała wartość RemoteConfigFetchStatus.throttle
.
Domyślny minimalny interwał pobierania dla Zdalnej konfiguracji wynosi 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 wykonanych wywołań pobierania.
Podczas tworzenia aplikacji, jeśli nie używasz zdalnej konfiguracji w czasie rzeczywistym (co zalecamy), możesz bardzo często pobierać i aktywować konfiguracje (wiele razy na godzinę), aby umożliwić szybkie iteracje podczas opracowywania i testowania aplikacji. Aby dostosować się do szybkiej iteracji projektu z maksymalnie 10 programistami, 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),
));
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: