Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w aplikacji i aktualizować ich wartości w chmurze, co pozwala zmieniać wygląd i działanie aplikacji bez jej aktualizacji.
Biblioteka Zdalnej konfiguracji służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu Zdalnej konfiguracji oraz kontrolowania, kiedy pobrane wartości mają być udostępniane aplikacji. Więcej informacji znajdziesz w artykule o strategiach wczytywania Zdalnej konfiguracji.
Ten przewodnik przedstawia krok po kroku, jak zacząć korzystać z usługi, i zawiera przykładowy kod, który możesz skopiować lub pobrać z repozytorium GitHub firebase/quickstart-unity.
Krok 1. Dodaj Zdalną konfigurację do aplikacji
Zanim użyjesz Zdalnej konfiguracji, musisz:
Zarejestruj projekt w Unity i skonfiguruj go do korzystania z Firebase.
Jeśli Twój projekt Unity korzysta już z Firebase, jest już zarejestrowany i skonfigurowany dla Firebase.
Jeśli nie masz projektu Unity, możesz pobrać przykładową aplikację.
Dodaj do projektu Unity pakiet SDK Firebase Unity (a w szczególności
FirebaseRemoteConfig.unitypackage
).
Pamiętaj, że dodanie Firebase do projektu Unity obejmuje zadania wykonywane zarówno w konsoli Firebase, jak i w otwartym projekcie Unity (np. pobierasz z konsoli pliki konfiguracyjne Firebase, a następnie przenosisz je do projektu Unity).
Krok 2. Ustaw domyślne wartości parametrów w aplikacji
Domyślne wartości parametrów w aplikacji możesz ustawić w obiekcie Zdalnej konfiguracji, aby aplikacja zachowywała się zgodnie z oczekiwaniami przed nawiązaniem połączenia z backendem Zdalnej konfiguracji. Jeśli w backendzie nie ma ustawionych żadnych wartości domyślnych, będą dostępne wartości domyślne.
W tym celu utwórz słownik ciągu znaków i wypełnij go parami klucz-wartość reprezentującymi wartości domyślne, które chcesz dodać. Jeśli masz już skonfigurowane wartości parametrów backendu Zdalnej konfiguracji, możesz pobrać plik zawierający te pary klucz-wartość i użyć go do utworzenia słownika ciągu znaków. Więcej informacji znajdziesz w artykule o pobieraniu wartości domyślnych szablonu Zdalnej konfiguracji.
Właściwości inne niż ciągi zostaną przekonwertowane na typ usługi po wywołaniu funkcji SetDefaultsAsync()
.
System.Collections.Generic.Dictionary<string, object> defaults = new System.Collections.Generic.Dictionary<string, object>(); // These are the values that are used if we haven't fetched data from the // server // yet, or if we ask for values that the server doesn't have: defaults.Add("config_test_string", "default local string"); defaults.Add("config_test_int", 1); defaults.Add("config_test_float", 1.0); defaults.Add("config_test_bool", false); Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults) .ContinueWithOnMainThread(task => {
Krok 3. Pobierz wartości parametrów do wykorzystania w aplikacji
Teraz możesz pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli ustawisz wartości w backendzie Zdalnej konfiguracji, pobierze je i aktywujesz, będą one dostępne dla Twojej aplikacji. W przeciwnym razie wartości parametrów w aplikacji zostaną skonfigurowane za pomocą SetDefaultsAsync()
.
Aby uzyskać te wartości, użyj funkcji GetValue()
, podając klucz parametru jako argument. Zwraca wartość ConfigValue
, która ma właściwości umożliwiające konwersję wartości na różne typy podstawowe.
Krok 4. Ustaw wartości parametrów
- Otwórz projekt w konsoli Firebase.
- Wybierz z menu Zdalna konfiguracja, aby wyświetlić panel 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 domyślną wartość w aplikacji) i wartości warunkowe. Więcej informacji znajdziesz w artykule o parametrach i warunkach Zdalnej konfiguracji.
Krok 5. Pobierz i aktywuj wartości (w razie potrzeby)
Aby pobrać wartości parametrów z backendu Zdalnej konfiguracji, wywołaj metodę FetchAsync()
. Wszystkie wartości ustawione w backendzie są pobierane i zapisywane w pamięci podręcznej obiektu Zdalnej konfiguracji.
// Start a fetch request. // FetchAsync only fetches new data if the current data is older than the provided // timespan. Otherwise it assumes the data is "recent enough", and does nothing. // By default the timespan is 12 hours, and for production apps, this is a good // number. For this example though, it's set to a timespan of zero, so that // changes in the console will always show up immediately. public Task FetchDataAsync() { DebugLog("Fetching data..."); System.Threading.Tasks.Task fetchTask = Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync( TimeSpan.Zero); return fetchTask.ContinueWithOnMainThread(FetchComplete); }
W powyższym kodzie FetchComplete
to metoda, której podpis pasuje do parametrów jednego z przeciążeń obiektu ContinueWithOnMainThread()
.
W przykładowym kodzie poniżej metoda FetchComplete
przekazuje poprzednie zadanie (fetchTask
), dzięki czemu FetchComplete
może określić, czy zakończyła swoje zadanie.
Do określenia, czy zakończenie przebiegło również, kod używa parametru Info.LastFetchStatus
. Jeśli tak, wartości parametrów Zdalnej konfiguracji są aktywowane za pomocą funkcji ActivateAsync()
.
private void FetchComplete(Task fetchTask) {
if (!fetchTask.IsCompleted) {
Debug.LogError("Retrieval hasn't finished.");
return;
}
var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
var info = remoteConfig.Info;
if(info.LastFetchStatus != LastFetchStatus.Success) {
Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
return;
}
// Fetch successful. Parameter values must be activated to use.
remoteConfig.ActivateAsync()
.ContinueWithOnMainThread(
task => {
Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
});
}
Wartości pobrane za pomocą funkcji FetchAsync()
są zapisywane lokalnie w pamięci podręcznej po zakończeniu pobierania, ale nie są udostępniane, dopóki nie zostanie wywołane wywołanie ActivateAsync()
. Dzięki temu masz pewność, że nowe wartości nie będą stosowane w trakcie obliczeń lub w innych momentach, które mogą powodować problemy lub dziwne zachowanie.
Krok 6. Nasłuchuj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów możesz za pomocą Zdalnej konfiguracji w czasie rzeczywistym nasłuchiwać aktualizacji z backendu Zdalnej konfiguracji. Zdalna konfiguracja w czasie rzeczywistym sygnalizuje połączone urządzenia, gdy dostępne są aktualizacje, i automatycznie pobiera zmiany po opublikowaniu nowej wersji Zdalnej konfiguracji.
Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet SDK Firebase Unity w wersji 11.0.0 lub nowszej na platformy Android i Apple.
- Dodaj w aplikacji
OnConfigUpdateListener
, aby zacząć nasłuchiwać aktualizacji i automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Następnie utwórzConfigUpdateListenerEventHandler
, aby przetwarzać zdarzenia aktualizacji. Poniższy przykład wykrywa aktualizacje i używa nowo pobranych wartości do wyświetlenia zaktualizowanej wiadomości powitalnej.
// Invoke the listener. void Start() { Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener += ConfigUpdateListenerEventHandler; } // Handle real-time Remote Config events. void ConfigUpdateListenerEventHandler( object sender, Firebase.RemoteConfig.ConfigUpdateEventArgs args) { if (args.Error != Firebase.RemoteConfig.RemoteConfigError.None) { Debug.Log(String.Format("Error occurred while listening: {0}", args.Error)); return; } Debug.Log("Updated keys: " + string.Join(", ", args.UpdatedKeys)); // Activate all fetched values and then display a welcome message. remoteConfig.ActivateAsync().ContinueWithOnMainThread( task => { DisplayWelcomeMessage(); }); } // Stop the listener. void OnDestroy() { Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener -= ConfigUpdateListenerEventHandler; }
Gdy następnym razem opublikujesz nową wersję Zdalnej konfiguracji, urządzenia, na których działa Twoja aplikacja i nasłuchują zmian, wywołają moduł obsługi ukończenia.
Dalsze kroki
Zapoznaj się z przypadkami użycia Zdalnej konfiguracji oraz dokumentacją kluczowych pojęć i zaawansowanych strategii, takich jak: