Wprowadzenie do Zdalnej konfiguracji Firebase


Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w aplikacji i aktualizować ich wartości w chmurze, co pozwala zmieniać wygląd i działanie aplikacji bez jej aktualizowania. Ten przewodnik przedstawia krok po kroku, od czego zacząć, oraz przykładowy kod.

Krok 1. Dodaj Firebase i pakiet SDK Zdalnej konfiguracji do aplikacji

  1. Zainstaluj i zainicjuj pakiety SDK Firebase dla Flutter, jeśli jeszcze ich nie masz.

  2. W przypadku Zdalnej konfiguracji usługa Google Analytics jest wymagana do kierowania warunkowego instancji aplikacji na właściwości użytkownika i odbiorców. Pamiętaj, aby włączyć Google Analytics w projekcie.

  3. Z katalogu głównego projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę Zdalnej konfiguracji:

    flutter pub add firebase_remote_config
    

    Podczas konfigurowania Zdalnej konfiguracji musisz też dodać do aplikacji pakiet SDK Firebase dla Google Analytics:

    flutter pub add firebase_analytics
    
  4. Przebuduj projekt:

    flutter run
    
  5. Jeśli używasz Zdalnej konfiguracji w systemie macOS, włącz udostępnianie pęku kluczy w Xcode.

Krok 2. Pobierz obiekt typu singleton Zdalnej konfiguracji

Pobierz instancję obiektu Zdalnej konfiguracji i ustaw minimalny odstęp czasu pobierania, który 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 typu singleton służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu oraz kontrolowania, kiedy pobrane wartości mają być dostępne dla aplikacji.

W trakcie programowania zalecane jest ustawienie stosunkowo niskiego minimalnego okresu pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie.

Krok 3. Ustaw domyślne wartości parametrów w aplikacji

Domyślne wartości parametrów w aplikacji możesz ustawić w obiekcie Zdalnej konfiguracji, aby aplikacja zachowywała się zgodnie z oczekiwaniami przed nawiązaniem połączenia z backendem Zdalnej konfiguracji. Jeśli w backendzie nie ma ustawionych żadnych wartości domyślnych, będą dostępne wartości domyślne.

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 pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli ustawisz wartości w backendzie, pobierzesz je i aktywujesz, staną się one dostępne dla Twojej aplikacji. W przeciwnym razie wartości parametrów w aplikacji zostaną skonfigurowane za pomocą funkcji setDefaults().

Aby uzyskać te wartości, wywołaj podaną poniżej metodę, która mapuje typ danych oczekiwany przez Twoją aplikację, podając klucz parametru jako argument:

  • getBool()
  • getDouble()
  • getInt()
  • getString()

Krok 5. Ustaw wartości parametrów w backendzie Zdalnej konfiguracji

Za pomocą konsoli Firebase lub interfejsów API backendu Zdalnej konfiguracji możesz tworzyć po stronie serwera nowe wartości domyślne, które zastępują wartości w aplikacji zgodnie z wybraną logiką warunkową lub kierowaniem na użytkowników. W tej sekcji znajdziesz instrukcje tworzenia tych wartości w konsoli Firebase.

  1. Otwórz projekt w konsoli Firebase.
  2. Wybierz z menu Zdalna konfiguracja, aby wyświetlić panel Zdalnej konfiguracji.
  3. 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 też ustawić wartości warunkowe. Więcej informacji znajdziesz w artykule Parametry i warunki Zdalnej konfiguracji.

Krok 6. Pobierz i aktywuj wartości

  1. Aby pobrać wartości parametrów z backendu Zdalnej konfiguracji, wywołaj metodę fetch(). Wszystkie wartości ustawione w backendzie są pobierane i zapisywane w obiekcie Zdalnej konfiguracji.

  2. Aby udostępnić aplikacji pobrane wartości parametrów, wywołaj metodę activate().

    Jeśli chcesz pobrać i aktywować wartości w ramach jednego wywołania, możesz użyć żądania fetchAndActivate(), aby pobrać wartości z backendu Zdalnej konfiguracji i udostępnić je aplikacji:

    await remoteConfig.fetchAndActivate();
    

Te zaktualizowane wartości parametrów mają wpływ na działanie i wygląd aplikacji, dlatego należy aktywować pobrane wartości w czasie umożliwiającym bezproblemowe korzystanie z aplikacji, np. przy następnym uruchomieniu przez niego aplikacji. Więcej informacji i przykładów znajdziesz w artykule Strategie ładowania Zdalnej konfiguracji.

Krok 7. Nasłuchuj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz użyć Zdalnej konfiguracji w czasie rzeczywistym do nasłuchiwania aktualizacji z backendu Zdalnej konfiguracji. Zdalna konfiguracja w czasie rzeczywistym sygnalizuje połączonym urządzeniom, gdy dostępne są aktualizacje, i automatycznie pobiera zmiany po opublikowaniu nowej wersji Zdalnej konfiguracji.

Pamiętaj, że Zdalna konfiguracja w czasie rzeczywistym nie jest dostępna dla aplikacji internetowych.

  1. Użyj w aplikacji polecenia onConfigUpdated, aby zacząć nasłuchiwać aktualizacji i automatycznie pobierać nowe wartości parametrów.

     remoteConfig.onConfigUpdated.listen((event) async {
       await remoteConfig.activate();
    
       // Use the new config values here.
     });
    
  2. 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ę.

Ograniczenia

Jeśli aplikacja zostanie pobrana zbyt wiele razy w krótkim czasie, wywołania pobierania zostaną ograniczone, a wartość właściwości lastFetchStatus w FirebaseRemoteConfig będzie wynosić RemoteConfigFetchStatus.throttle.

Domyślny minimalny odstęp czasu pobierania w przypadku Zdalnej konfiguracji to 12 godzin, co oznacza, że konfiguracja nie będzie pobierana z backendu więcej niż raz w ciągu 12 godzin, niezależnie od tego, ile rzeczywiście zostanie wywołanych.

Jeśli w trakcie tworzenia aplikacji nie używasz Zdalnej konfiguracji w czasie rzeczywistym (co jest zalecane), możesz bardzo często (kilka razy na godzinę) pobierać i aktywować konfiguracje. Pozwala to na szybkie powtarzanie i testowanie aplikacji. Aby obsłużyć szybkie iteracje w projekcie z maksymalnie 10 programistami, możesz tymczasowo ustawić niski minimalny odstęp czasu pobierania za pomocą setConfigSettings().

final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(minutes: 1),
    minimumFetchInterval: const Duration(minutes: 5),
));

Dalsze kroki

Zapoznaj się z przypadkami użycia Zdalnej konfiguracji oraz dokumentacją kluczowych pojęć i zaawansowanych strategii, takich jak: