Pierwsze kroki ze Zdalnej konfiguracji Firebase


Możesz używać Firebase Remote Config do definiowania parametrów w aplikacji i aktualizowania ich wartości w chmurze, co pozwala modyfikować wygląd i działanie aplikacji bez rozpowszechniania jej aktualizacji.

Biblioteka Remote Config służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu Remote Config oraz kontrolowania, kiedy pobrane wartości są udostępniane aplikacji. Więcej informacji znajdziesz w artykule Strategie wczytywania Zdalnej konfiguracji.

Krok 1. Dodaj Firebase do aplikacji

Zanim zaczniesz korzystać z Remote Config, musisz:

  • Zarejestruj projekt C++ i skonfiguruj go pod kątem używania Firebase.

    Jeśli Twój projekt w C++ korzysta już z Firebase, jest już zarejestrowany i skonfigurowany pod kątem Firebase.

  • Dodaj Firebase C++ SDK do projektu C++.

Pamiętaj, że dodanie Firebase do projektu C++ wymaga wykonania zadań zarówno w Firebasekonsoli, jak i w otwartym projekcie C++ (np. pobierasz z konsoli pliki konfiguracyjne Firebase, a następnie przenosisz je do projektu C++).

Krok 2. Dodaj Remote Config do aplikacji

AndroidiOS+

Po dodaniu Firebase do aplikacji:

  1. Utwórz aplikację Firebase, przekazując środowisko JNI i aktywność:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. Zainicjuj bibliotekę Remote Config, jak pokazano poniżej:

    ::firebase::remote_config::Initialize(app);

Po dodaniu Firebase do aplikacji:

  1. Utwórz aplikację Firebase:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. Zainicjuj bibliotekę Remote Config, jak pokazano poniżej:

    ::firebase::remote_config::Initialize(app);

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

W obiekcie Remote Config 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 Remote Config, a także aby wartości domyślne były dostępne, jeśli żadne nie są ustawione w backendzie.

  1. Zdefiniuj zestaw nazw parametrów i domyślnych wartości parametrów za pomocą obiektu ConfigKeyValue* lub obiektu ConfigKeyValueVariant* o rozmiarze tablicy.

    Jeśli masz już skonfigurowane wartości parametrów backenduRemote Config, możesz pobrać plik zawierający te pary klucz-wartość i użyć go do utworzenia obiektu map. Więcej informacji znajdziesz w artykule Pobieranie domyślnych ustawień szablonu.Remote Config

  2. Dodaj te wartości do obiektu Remote Config za pomocą funkcji SetDefaults().

Krok 4. Uzyskaj wartości parametrów, które będą używane w Twojej aplikacji

Możesz teraz pobierać wartości parametrów z obiektu Remote Config. Jeśli ustawisz wartości w Remote Config backendzie, pobierzesz je, a potem aktywujesz, będą one dostępne w aplikacji. W przeciwnym razie uzyskasz wartości parametrów w aplikacji skonfigurowane za pomocą SetDefaults().

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:

Krok 5. Ustaw wartości parametrów

  1. W Firebasekonsoli otwórz projekt.
  2. W menu kliknij Remote Config, aby wyświetlić panel Remote Config.
  3. Zdefiniuj parametry o nazwach takich samych jak parametry zdefiniowane w aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi wartość domyślną w aplikacji) i wartości warunkowe. Więcej informacji znajdziesz w artykule Remote Config parametry i warunki.

Krok 6. Pobierz i aktywuj wartości

  1. Aby pobrać wartości parametrów z backendu Remote Config, wywołaj metodę Fetch(). Wszystkie wartości ustawione w backendzie są pobierane i buforowane w obiekcie Remote Config.
  2. Aby pobrane wartości parametrów były dostępne w aplikacji, wywołaj funkcję ActivateFetched()

Krok 7. Słuchaj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz użyć Remote Config w czasie rzeczywistymRemote Config, aby nasłuchiwać aktualizacji z backendu. Sygnały w czasie rzeczywistymRemote Config informują połączone urządzenia o dostępności aktualizacji i automatycznie pobierają zmiany po opublikowaniu nowej Remote Config wersji.

Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet SDK Firebase C++ w wersji 11.0.0 lub nowszej na platformach Android i Apple.

  1. W aplikacji wywołaj funkcję AddOnConfigUpdateListener, aby rozpocząć nasłuchiwanie aktualizacji i automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Poniższy przykład nasłuchuje aktualizacji i gdy zostanie wywołana funkcja Activate, używa nowo pobranych wartości do wyświetlenia zaktualizowanego powitania.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

Gdy opublikujesz nową wersję Remote Config, urządzenia, na których działa Twoja aplikacja i które nasłuchują zmian, wywołają odbiornik aktualizacji konfiguracji.

Dalsze kroki

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