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:
Utwórz aplikację Firebase, przekazując środowisko JNI i działanie:
app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
Zainicjuj bibliotekę Remote Config, jak pokazano:
::firebase::remote_config::Initialize(app);
iOS+
Po dodaniu Firebase do swojej aplikacji:
Utwórz aplikację Firebase:
app = ::firebase::App::Create(::firebase::AppOptions());
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.
Zdefiniuj zestaw nazw parametrów i domyślne wartości parametrów, używając obiektu
std::map<const char*, const char*>
lub obiektustd::map<const char*, firebase::Variant>
.- Dowiedz się więcej o
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 .- Dowiedz się więcej o
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 swoją aplikację do projektu Firebase.
Krok 6: Ustaw wartości parametrów
- W konsoli Firebase otwórz swój projekt.
- Wybierz opcję Zdalna konfiguracja z menu, aby wyświetlić pulpit nawigacyjny Zdalnej konfiguracji.
- 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 wartość domyślną w aplikacji) i wartości warunkowe. Aby dowiedzieć się więcej, zobacz Parametry i warunki Zdalnej konfiguracji .
Krok 7: Pobierz i aktywuj wartości
- Aby pobrać wartości parametrów z zaplecza Remote Config, wywołaj metodę
Fetch()
. Wszelkie wartości ustawione w backendie są pobierane i buforowane w obiekcie Remote Config. - Aby udostępnić aplikacji pobrane wartości parametrów, wywołaj metodę
ActivateFetched()
Krok 8: Słuchaj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów można używać funkcji Remote Config w czasie rzeczywistym do nasłuchiwania aktualizacji z zaplecza Remote Config. Zdalna konfiguracja w czasie rzeczywistym sygnalizuje podłączonym urządzeniom dostępność aktualizacji i automatycznie pobiera zmiany po opublikowaniu nowej wersji Zdalnej konfiguracji.
Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet SDK Firebase C++ w wersji 11.0.0 lub nowszej dla platform Android i Apple.
- W aplikacji zadzwoń do
AddOnConfigUpdateListener
, aby rozpocząć słuchanie aktualizacji i automatycznie pobrać nowe lub zaktualizowane wartości parametrów. Poniższy przykład słucha aktualizacji i, po wywołaniuActivate
, używa nowo pobieranych wartości do wyświetlenia zaktualizowanej wiadomości powitalnej.
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); } });
Następnym razem, gdy opublikujesz nową wersję zdalnej konfiguracji, urządzenia, które uruchamiają Twoją aplikację, a słuchanie zmian wywołają słuchacz aktualizacji konfiguracji.
Następne kroki
Jeśli jeszcze tego nie zrobiłeś, zbadaj zdalne przypadki użycia konfiguracji i spójrz na niektóre z kluczowych koncepcji i zaawansowanych dokumentacji strategii, w tym: