Pierwsze kroki ze Zdalnej konfiguracji Firebase


Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w aplikacji i zmieniać ich wartości w chmurze, co umożliwia modyfikowanie wyglądu i zachowania aplikacji bez rozpowszechniania jej aktualizacji. W tym przewodniku znajdziesz instrukcje rozpoczęcia pracy oraz przykładowy kod.

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

  1. Zainstaluj i inicjuj pakiety SDK Firebase dla Fluttera (jeśli nie zostało to jeszcze zrobione).

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

  3. Aby zainstalować w katalogu głównym projektu Flutter wtyczkę Zdalna konfiguracja, uruchom to polecenie:

    flutter pub add firebase_remote_config
    

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

    flutter pub add firebase_analytics
    
  4. Zbuduj ponownie projekt:

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

Krok 2. 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:

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 są udostępniane aplikacji.

Podczas tworzenia zalecamy ustawienie stosunkowo niskiego minimalnego interwału pobierania. Więcej informacji znajdziesz w sekcji Ograniczanie.

Krok 3. Ustaw domyślne 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. Dzięki temu domyślne wartości będą dostępne, jeśli nie zostaną ustawione w backendzie.

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, które będą używane w Twojej aplikacji

Teraz możesz pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli ustawisz wartości w backendzie, pobierzesz je, a następnie aktywujesz, będą one dostępne w 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 jest zmapowana na typ danych oczekiwany przez aplikację, podając jako argument klucz parametru:

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

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

Korzystając z konsoli Firebase lub interfejsów API backendu Zdalnej konfiguracji, możesz tworzyć nowe wartości domyślne po stronie serwera, które zastąpią wartości w aplikacji zgodnie z wybraną przez Ciebie logiką warunkową lub kierowaniem na użytkowników. W tej sekcji opisano czynności do wykonania w konsoli Firebase, aby utworzyć te wartości.

  1. W konsoli Firebase otwórz projekt.
  2. W menu wybierz Zdalna konfiguracja, aby wyświetlić panel sterowania Zdalną konfiguracją.
  3. Zdefiniuj parametry o tych samych nazwach co parametry zdefiniowane w aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi odpowiadającą jej wartość domyślną w aplikacji), a także wartości warunkowe. Więcej informacji znajdziesz w artykule Parametry i warunki konfiguracji zdalnej.

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 przechowywane w obiekcie Zdalnej konfiguracji.

  2. Aby udostępnić wartości wygenerowane przez funkcję wywołania parametru 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:

    await remoteConfig.fetchAndActivate();
    

Zaktualizowane wartości parametrów wpływają na działanie i wygląd aplikacji, dlatego należy aktywować pobrane wartości w takim momencie, aby zapewnić użytkownikowi płynne działanie, np. gdy otworzy on aplikację po raz kolejny. Więcej informacji i przykładów znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.

Krok 7. Słuchaj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz używać Zdalnej konfiguracji w czasie rzeczywistym do odbierania aktualizacji z backendu Zdalnej konfiguracji. Sygnały konfiguracji zdalnej w czasie rzeczywistym na urządzeniach połączonych, gdy dostępne są aktualizacje, i automatyczne pobieranie zmian po opublikowaniu nowej wersji konfiguracji zdalnej.

Zdalna konfiguracja w czasie rzeczywistym nie jest dostępna w przypadku aplikacji internetowych.

  1. W aplikacji użyj parametru 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 jest uruchomiona Twoja aplikacja i które nasłuchują zmian, aktywują nową konfigurację.

Ograniczenia

Jeśli aplikacja pobiera dane zbyt często w krótkim czasie, wywołania pobierania zostaną ograniczone, a wartość właściwości lastFetchStatus w komponencie FirebaseRemoteConfig będzie wynosić RemoteConfigFetchStatus.throttle.

Domyślny minimalny interwał pobierania w przypadku usługi Zdalna konfiguracja to 12 godzin, co oznacza, że konfiguracje nie będą pobierane z back-endu częściej niż raz w ciągu 12-godzinnego okna, niezależnie od liczby wywołań funkcji pobierania.

Jeśli podczas tworzenia aplikacji nie używasz zdalnej konfiguracji w czasie rzeczywistym (co jest zalecane), możesz bardzo często pobierać i aktywować konfiguracje (wiele razy na godzinę), aby umożliwić szybkie iteracje podczas tworzenia i testowania aplikacji. Aby umożliwić szybkie iteracje w projekcie z maksymalnie 10 deweloperów, możesz tymczasowo ustawić krótki minimalny interwał pobierania za pomocą parametru setConfigSettings().

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

Dalsze kroki

Jeśli jeszcze tego nie zrobisz, zapoznaj się z Remote Config przypadkami użycia i pojęciami kluczowymi oraz dokumentacją dotyczącą zaawansowanych strategii, w tym: