Zacznij korzystać ze zdalnej konfiguracji Firebase


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.

Biblioteka Remote Config służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z zaplecza Remote Config i kontrolowania, kiedy pobrane wartości są udostępniane Twojej aplikacji. Aby dowiedzieć się więcej, zobacz Strategie ładowania zdalnej konfiguracji .

Krok 1: Dodaj Firebase do swojej aplikacji

Zanim będziesz mógł skorzystać ze Zdalnej konfiguracji , musisz:

  • Zarejestruj swój projekt C++ i skonfiguruj go do korzystania z Firebase.

    Jeśli Twój projekt C++ korzysta już z Firebase, oznacza to, że jest już zarejestrowany i skonfigurowany dla Firebase.

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

Pamiętaj, że dodanie Firebase do projektu C++ obejmuje zadania zarówno w konsoli Firebase , jak i w otwartym projekcie C++ (na przykład pobierasz pliki konfiguracyjne Firebase z konsoli, a następnie przenosisz je do projektu C++).

Krok 2: Dodaj zdalną konfigurację do swojej aplikacji

Android

Po dodaniu Firebase do swojej aplikacji:

  1. Utwórz aplikację Firebase, przekazując środowisko JNI i działanie:

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

  2. Zainicjuj bibliotekę Remote Config, jak pokazano:

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

iOS+

Po dodaniu Firebase do swojej aplikacji:

  1. Utwórz aplikację Firebase:

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

  2. Zainicjuj bibliotekę Remote Config, jak pokazano:

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

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, a także aby były dostępne wartości domyślne, jeśli w backendie nie ustawiono żadnych wartości.

  1. Zdefiniuj zestaw nazw parametrów i domyślne wartości parametrów, używając obiektu std::map<const char*, const char*> lub obiektu std::map<const char*, firebase::Variant> .

    Jeśli wartości parametrów zaplecza usługi Remote Config zostały już skonfigurowane, możesz pobrać plik zawierający te pary klucz/wartość i użyć go do skonstruowania obiektu map . Aby uzyskać więcej informacji, zobacz Pobieranie domyślnych szablonów zdalnej konfiguracji .

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

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 zapleczu zdalnej konfiguracji, 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:

Krok 5: Połącz swoją aplikację w konsoli Firebase

W konsoli Firebase dodaj aplikację do projektu Firebase.

Krok 6: Ustaw wartości parametrów

  1. W konsoli Firebase otwórz swój projekt.
  2. Wybierz opcję Zdalna konfiguracja z menu, aby wyświetlić pulpit nawigacyjny Zdalnej konfiguracji.
  3. Zdefiniuj parametry o takich samych nazwach, jak parametry zdefiniowane w aplikacji. For each parameter, you can set a default value (which will eventually override the in-app default value) and conditional values. To learn more, see Remote Config parameters and conditions .

Step 7: Fetch and activate values

  1. To fetch parameter values from the Remote Config backend, call the Fetch() method. Any values that you set on the backend are fetched and cached in the Remote Config object.
  2. To make fetched parameter values available to your app, call the ActivateFetched()

Step 8: Listen for updates in real time

After you fetch parameter values, you can use real-time Remote Config to listen for updates from the Remote Config backend. Real-time Remote Config signals to connected devices when updates are available and automatically fetches the changes after you publish a new Remote Config version.

Real-time updates are supported by the Firebase C++ SDK v11.0.0+ and higher for Android and Apple platforms.

  1. In your app, call AddOnConfigUpdateListener to start listening for updates and automatically fetch any new or updated parameter values. The following example listens for updates and, when Activate is called, uses the newly fetched values to display an updated welcome message.
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);
      }
    });

The next time you publish a new version of your Remote Config, devices that are running your app and listening for changes will call the config update listener.

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: