Pierwsze kroki ze Zdalnej konfiguracji Firebase


Za pomocą Firebase Remote Config 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.

Biblioteka Remote Config służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierz zaktualizowane wartości parametrów z backendu Remote Config oraz kontrolować, kiedy pobrane wartości mają być udostępniane aplikacji. Aby dowiedzieć się więcej, zobacz Strategie wczytywania Zdalnej konfiguracji.

Krok 1. Dodaj Firebase do swojej aplikacji

Zanim zaczniesz korzystać z Remote Config, musisz:

  • Zarejestruj swój projekt C++ i skonfiguruj go pod kątem korzystania z Firebase.

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

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

Dodawanie Firebase do projektu C++ wymaga wykonania zadań zarówno w konsoliFirebase, jak i w otwartym projekcie C++ (np. pobieranie plików konfiguracji Firebase z konsoli i przenoszenie ich do projektu C++).

Krok 2. Dodaj Remote Config do aplikacji

Android

Po dodaniu Firebase do aplikacji:

  1. Utwórz aplikację Firebase, przekazując dane w środowisku JNI oraz w sekcji Activity:

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

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

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

iOS+

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

Wartości domyślne parametrów w aplikacji możesz ustawić w obiekcie Remote Config, aby aplikacja działała zgodnie z oczekiwaniami, zanim połączy się z serwerem Remote Config, oraz aby były dostępne wartości domyślne, jeśli na serwerze nie ma żadnych ustawionych wartości.

  1. Zdefiniuj zbiór nazw parametrów i domyślne wartości parametrów za pomocą ConfigKeyValue* lub ConfigKeyValueVariant* obiekt o rozmiarze tablicy.

    Jeśli masz już skonfigurowany Remote Config parametr backendu możesz pobrać plik zawierający te pary klucz/wartość i użyć go, aby utworzyć obiekt map. Więcej informacji: Pobierz Domyślne ustawienia szablonu: Remote Config.

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

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 Remote Config. Jeśli ustawisz wartości w backendzie Remote Config, pobrały je, a następnie aktywowały, wartości są dostępne dla aplikacji. W przeciwnym razie otrzymasz parametr in-app wartości skonfigurowane za pomocą SetDefaults()

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

Krok 5. Ustaw wartości parametrów

  1. Otwórz projekt w konsoli Firebase.
  2. Wybierz w menu Remote Config, aby wyświetlić panel Remote Config.
  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 wartość domyślną w aplikacji) i wartości warunkowe. Więcej informacji: Parametry i warunki funkcji Remote Config.

Krok 6. Pobierz i aktywuj wartości

  1. Aby pobrać wartości parametrów z back-endu Remote Config, wywołaj metodę Fetch(). Wszystkie wartości ustawione w backendzie są pobierane i w pamięci podręcznej obiektu Remote Config.
  2. Aby udostępnić wartości pobranych parametrów aplikacji, wywołaj funkcję ActivateFetched().

Krok 7. Słuchaj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz używać interfejsu Remote Config w czasie rzeczywistym do odbierania aktualizacji z back-endu Remote Config. W czasie rzeczywistym Remote Config sygnalizuje połączonym urządzeniom, że są dostępne aktualizacje, i automatycznie pobiera zmiany po opublikowaniu nowej wersji Remote Config.

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

  1. W aplikacji wywołaj funkcję AddOnConfigUpdateListener, aby zacząć nasłuchiwać aktualizacji i automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Ten przykład wykrywa zmiany i po wywołaniu funkcji Activate używa nowo pobranych wartości do wyświetlenia zaktualizowanego komunikatu powitalnego.
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 następnym razem opublikujesz nową wersję aplikacji Remote Config, urządzenia które używają Twojej aplikacji i nasłuchują zmian, wywołają konfigurację aktualizacji detektora.

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: