Firebase Remote Config zapewnia dużą elastyczność w zakresie tego, jak i kiedy pobierać nowe wartości z serwera i aktywować je w aplikacji. Dzięki temu możesz zadbać o wysoką jakość wrażeń użytkowników, kontrolując czas wprowadzania widocznych zmian w konfiguracji. Możesz pobierać nowe wartości przy uruchamianiu aplikacji za pomocą funkcji fetchAndActivate() i używać w czasie rzeczywistym Remote Config jako metody uzupełniającej, aby automatycznie pobierać najnowsze wartości parametrów po opublikowaniu nowej wersji Remote Config.
W tym przewodniku omawiamy kilka strategii wczytywania i kluczowe kwestie, które należy wziąć pod uwagę przy wyborze najlepszej opcji dla Twojej aplikacji.
Strategia 1. Pobieranie i aktywowanie po wczytaniu
W tej strategii aplikacja wywołuje fetchAndActivate() przy pierwszym uruchomieniu, aby pobrać nowe wartości z Remote Config i aktywować je od razu po wczytaniu. To proste podejście sprawdza się w przypadku zmian konfiguracji, które nie powodują drastycznych zmian wizualnych w interfejsie. Należy jej unikać w sytuacjach, w których interfejs może się znacząco zmienić, gdy użytkownicy będą z niego korzystać.
Gdy aplikacja wywoła funkcję fetchAndActivate(), może zacząć nasłuchiwać aktualizacje wartości parametru w czasie rzeczywistym, wywołując funkcję addOnConfigUpdateListener. Ta metoda zaczyna nasłuchiwać wszelkich aktualizacji wartości parametrów po stronie serwera, automatycznie je pobiera, a następnie wywołuje odbiornik. Prosta strategia polega na aktywowaniu nowych wartości w odbiorniku. Jednak w przypadku interfejsów użytkownika zawierających dane wrażliwe należy unikać natychmiastowej aktywacji, o czym wspomnieliśmy w sekcji fetchAndActivate().
Strategia 2. Aktywacja za ekranem wczytywania
Aby rozwiązać potencjalny problem z interfejsem użytkownika, który może wystąpić w przypadku strategii 1, możesz użyć ekranu wczytywania. Zamiast od razu uruchamiać aplikację, wyświetl ekran ładowania i wywołaj funkcję fetchAndActivate w procedurze obsługi zakończenia.
Następnie od razu po tym – ponownie za pomocą wywołania zwrotnego lub powiadomienia – zamknij ekran wczytywania i pozwól użytkownikowi zacząć korzystać z aplikacji.
Jeśli używasz tej strategii, zalecamy dodanie limitu czasu do ekranu wczytywania. Jednominutowy limit czasu Zdalnej konfiguracji może być zbyt długi, aby zapewnić użytkownikom wysoką jakość uruchamiania aplikacji.
Nasłuchiwanie aktualizacji w czasie rzeczywistym Remote Config przez wywoływanieaddOnConfigUpdateListener dobrze sprawdza się w przypadku tej strategii. Dodaj odbiornik, gdy wyświetla się ekran ładowania, a następnie użyj activate() w co najmniej 1 miejscu w aplikacji, w którym wartości Remote Config nie spowodują drastycznych zmian wizualnych.
Strategia 3. Wczytywanie nowych wartości przy następnym uruchomieniu
Skuteczną strategią jest wczytywanie nowych wartości konfiguracji, które mają zostać aktywowane przy następnym uruchomieniu aplikacji. W tej strategii aplikacja aktywuje pobrane wartości przy uruchamianiu, zanim spróbuje pobrać nowe, zakładając, że mogła już pobrać nowe wartości konfiguracji, ale jeszcze ich nie aktywowała. Kolejność operacji w przypadku tej strategii jest następująca:
- Natychmiast aktywuj wcześniej pobrane wartości. Dotyczy to wszystkich wartości pobranych z serwera w poprzedniej sesji i jest niemal natychmiastowe.
- Gdy użytkownik korzysta z aplikacji, rozpocznij asynchroniczne wywołanie w celu pobrania nowych wartości zgodnie z domyślnym minimalnym interwałem pobierania i dodaj odbiornik aktualizacji konfiguracji w czasie rzeczywistym. Odbiornik w czasie rzeczywistym automatycznie pobiera wszystkie wartości opublikowane na serwerze podczas działania aplikacji. Aktualizacje w czasie rzeczywistym pomijają ustawienie minimalnego odstępu czasu między pobieraniem.
- W module obsługi zakończenia lub wywołania zwrotnego wywołania pobierania nie rób nic. Aplikacja zachowa pobrane wartości do momentu, gdy aktywujesz je przy następnym uruchomieniu.
Dzięki tej strategii czas oczekiwania użytkownika jest znacznie krótszy. Połączenie strategii pobierania i odbiornika w czasie rzeczywistym z wywołaniami activate() w razie potrzeby w cyklu życia aplikacji zapewnia użytkownikom najnowsze wartości z Remote Config podczas korzystania z aplikacji.
Wczytywanie strategii przeciwdziałania
Jak wynika z powyższej dyskusji o zaletach i wadach ładowania, należy unikać kilku wzorców użycia.
- Nie aktualizuj ani nie zmieniaj elementów interfejsu, gdy użytkownik go wyświetla lub z niego korzysta – chyba że masz ku temu ważne powody związane z aplikacją lub firmą, np. usunięcie opcji związanych z promocją, która właśnie się zakończyła.
- Nie wysyłaj jednocześnie dużej liczby żądań pobierania, ponieważ może to spowodować ograniczenie przepustowości serwera dla Twojej aplikacji. Jeśli musisz często pobierać aktualizacje, używaj w czasie rzeczywistymRemote Config. Chociaż w większości scenariuszy produkcyjnych ryzyko ograniczenia przepustowości jest niewielkie, może ono stanowić problem podczas aktywnego rozwoju. W takim przypadku przydatne jest Remote Config w czasie rzeczywistym. Zapoznaj się z wskazówkami dotyczącymi ograniczania przepustowości.
- Nie polegaj na połączeniu sieciowym, aby uzyskać wartości Remote Config. Ustaw w aplikacji domyślne wartości parametrów, aby zawsze działała ona zgodnie z oczekiwaniami. Możesz okresowo synchronizować domyślne wartości aplikacji i Remote ConfigbackenduRemote Config, korzystając z pobranych domyślnych wartości szablonu.
Dalsze kroki
Te 3 podstawowe strategie nie wyczerpują listy sposobów wczytywania wartości konfiguracji. W zależności od potrzeb możesz opracować znacznie bardziej zaawansowane strategie.
Więcej informacji o konkretnych wywołaniach służących do pobierania i aktywowania wartości konfiguracji znajdziesz w dokumentacji interfejsu API dla swojej platformy.