| Wybierz platformę: | iOS+ Android Web Flutter Unity C++ |
Remote Config w czasie rzeczywistym umożliwia otrzymywanie zaktualizowanych kluczy i wartości parametrów, gdy tylko zostaną opublikowane na serwerze. Dzięki temu możesz szybko zaktualizować dowolny typ atrybutu aplikacji kontrolowanego za pomocą wartości parametru Remote Config. Dzięki aktualizacjom Remote Config w czasie rzeczywistym możesz:
- Zmniejsz ryzyko, stopniowo wdrażając funkcje dla wybranych użytkowników i w razie potrzeby przywracając poprzednią wersję.
- Zwiększaj zaangażowanie użytkowników, szybko dostosowując ich wrażenia podczas korzystania z aplikacji. Możesz na przykład aktualizować banery i oferować zachęty użytkownikom, którzy spełniają określone kryteria Google Analytics, lub dynamicznie dostosowywać poziom trudności gry dla grup graczy.
- Zmniejsz liczbę zależności kompilacji i zwiększ produktywność programistów: używaj parametrów Remote Config jako flag funkcji, aby udostępniać funkcje zespołom programistów i testerów, jednocześnie ukrywając je przed użytkownikami w środowisku produkcyjnym.
Więcej informacji o sposobach korzystania z Remote Config znajdziesz w artykule Czynności, które można wykonywać w Remote Config.
W tym przewodniku znajdziesz te tematy:
- Relacja klient-serwer, która obsługuje aktualizacje w czasie rzeczywistym.
- Jak działa funkcja czasu rzeczywistego w pakiecie SDK.
- Jak używać aktualizacji w czasie rzeczywistym, aby na bieżąco aktualizować konfigurację aplikacji.
- Sprawdzone metody dotyczące Remote Config w czasie rzeczywistym.
połączenie klient-serwer w czasie rzeczywistym,
Gdy wdrożysz w aplikacji Remote Config w czasie rzeczywistym, utworzysz detektor czasu rzeczywistego, który otwiera połączenie HTTP z backendem Remote Config. Żądanie zawiera wersję konfiguracji zapisaną w pamięci podręcznej na urządzeniu. Serwer Remote Config w czasie rzeczywistym używa komunikatu o unieważnieniu, aby poinformować aplikację, kiedy należy pobrać nowszą wersję konfiguracji po stronie serwera.
Jeśli serwer ma nowszą wersję, natychmiast wysyła sygnał unieważnienia.
Jeśli nie ma nowszej wersji, połączenie pozostaje otwarte i czeka, aż zostanie opublikowana na serwerze. Gdy pakiet SDK klienta otrzyma sygnał unieważnienia, automatycznie go pobierze, a następnie wywoła wywołanie zwrotne detektora zarejestrowane podczas otwierania połączenia detektora. To pobieranie jest podobne do wywołania pobierania, które można wykonać za pomocą pakietu SDK, ale pomija ustawienia buforowania i minimumFetchInterval. Połączenie klient–serwer jest utrzymywane, gdy aplikacja działa na pierwszym planie.
Połączenie klient-serwer jest nawiązywane przez HTTP, więc nie wymaga żadnych zależności od innych bibliotek.
Słuchanie aktualizacji
Aktualizacje w czasie rzeczywistym uzupełniają wywołania Remote Config fetch. Zalecamy wywoływanie funkcji pobierania przy uruchamianiu aplikacji (lub w dowolnym momencie jej cyklu życia) i nasłuchiwanie aktualizacji Remote Config w czasie rzeczywistym podczas sesji użytkownika, aby mieć pewność, że masz najnowsze wartości, gdy tylko zostaną opublikowane na serwerze.
Aby nasłuchiwać aktualizacji, wywołaj onConfigUpdate, implementując wywołanie zwrotne, które jest wywoływane, gdy w aplikacji jest dostępna aktualizacja Remote Config. Za kulisami to wywołanie zaczyna nasłuchiwać aktualizacji z serwera Remote Config. Więcej informacji o relacji klient–serwer znajdziesz w poprzedniej sekcji.
Wywołanie zwrotne jest często dobrym miejscem do użycia activate, aby udostępnić aplikacji zaktualizowane parametry konfiguracji. Więcej strategii aktywowania wartości parametrów podczas korzystania z Remote Config w czasie rzeczywistym znajdziesz w artykule Strategie wczytywania Remote Config w Firebase.
Selektywne aktywowanie wartości parametrów
Gdy wywołasz metodę onConfigUpdate, możesz poczekać na zmianę i ją aktywować.
Wywołanie zwrotne next jest wywoływane, gdy nowa wersja szablonu zostanie automatycznie pobrana i gdy ta nowa wersja zawiera zmiany w aktywnych wartościach parametrów w aplikacji.
Te wywołania zwrotne są wywoływane z parametrem configUpdate.
configUpdate zawiera updated_keys, czyli zbiór zmienionych kluczy parametrów, które zainicjowały aktualizację w czasie rzeczywistym, i obejmuje:
- dodane lub usunięte klucze parametrów,
- Klucze parametrów, których wartości uległy zmianie
- Klucze parametrów, których metadane uległy zmianie (np. informacje o personalizacji Remote Config)
- klucze parametrów, których źródło wartości uległo zmianie (np. wartość domyślna w aplikacji została zaktualizowana do wartości po stronie serwera);
Jeśli używasz detektora działającego w czasie rzeczywistym w określonym widoku w aplikacji, przed aktywacją możesz sprawdzić, czy parametry związane z tym widokiem uległy zmianie.
Czasami pobieranie (rozpoczęte po wywołaniu metody fetch lub przez Remote Config w czasie rzeczywistym) nie powoduje aktualizacji klienta. W takich przypadkach metoda next ani zakończenie nie zostaną wywołane.
Dodawanie i usuwanie detektorów
onConfigUpdate to główny punkt wejścia do Remote Config w czasie rzeczywistym. Wywołanie tego detektora po raz pierwszy w cyklu życia aplikacji otwiera połączenie z backendem.
Kolejne wywołania używają tego samego połączenia, multipleksując komunikat o unieważnieniu opisany w sekcji Połączenie klient-serwer w czasie rzeczywistym.
Wywołanie zwraca „rejestrację detektora”, która ma metodę o nazwie Unsubscribe.
Aby przestać nasłuchiwać aktualizacji, wywołaj funkcję Unsubscribe, która została zwrócona podczas początkowej rejestracji obserwatora. Jeśli jest to jedyny aktywny detektor, wywołanie metody Unsubscribe spowoduje zamknięcie połączenia z serwerem w czasie rzeczywistym.
Chociaż możesz ręcznie zatrzymać nasłuchiwanie aktualizacji, często nie jest to konieczne. Remote Config w czasie rzeczywistym automatycznie przestaje nasłuchiwać aktualizacji, gdy aplikacja działa w tle, i wznawia nasłuchiwanie, gdy aplikacja działa na pierwszym planie.
Dalsze kroki
Zapoznaj się z artykułem Pierwsze kroki z Firebase Remote Config, aby skonfigurować Remote Config i zacząć nasłuchiwać aktualizacji w czasie rzeczywistym.