Możesz użyć Firebase Remote Config do definiowania parametrów w swojej aplikacji i aktualizowania ich wartości w chmurze, co pozwala modyfikować wygląd i zachowanie aplikacji bez dystrybucji aktualizacji aplikacji.
Biblioteka zdalnej konfiguracji służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z zaplecza zdalnej konfiguracji oraz kontrolowania, kiedy pobrane wartości są udostępniane Twojej aplikacji. Aby dowiedzieć się więcej, zobacz Strategie ładowania zdalnej konfiguracji .
Ten przewodnik przeprowadzi Cię przez kroki, aby rozpocząć i zawiera przykładowy kod, z których wszystkie są dostępne do sklonowania lub pobrania z repozytorium GitHub firebase/quickstart-unity .
Krok 1: Dodaj Zdalną konfigurację do swojej aplikacji
Aby móc korzystać ze Zdalnej konfiguracji , musisz:
Zarejestruj swój projekt Unity i skonfiguruj go do korzystania z Firebase.
Jeśli Twój projekt Unity korzysta już z Firebase, oznacza to, że jest już zarejestrowany i skonfigurowany dla Firebase.
Jeśli nie masz projektu Unity, możesz pobrać przykładową aplikację .
Dodaj zestaw Firebase Unity SDK (konkretnie
FirebaseRemoteConfig.unitypackage
) do swojego projektu Unity.
Pamiętaj, że dodanie Firebase do projektu Unity obejmuje zadania zarówno w konsoli Firebase , jak i w otwartym projekcie Unity (na przykład pobierasz pliki konfiguracyjne Firebase z konsoli, a następnie przenosisz je do projektu Unity).
Krok 2: Ustaw domyślne wartości parametrów w aplikacji
Możesz ustawić domyślne wartości parametrów w aplikacji w obiekcie Zdalna konfiguracja, aby Twoja aplikacja zachowywała się zgodnie z oczekiwaniami, zanim połączy się z zapleczem Zdalnej konfiguracji, i aby wartości domyślne były dostępne, jeśli żadne nie zostaną ustawione w zapleczu.
Aby to zrobić, utwórz słownik ciągó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 zaplecza usługi Remote Config, możesz pobrać plik zawierający te pary klucz/wartość i użyć go do skonstruowania słownika ciągów. Aby uzyskać więcej informacji, zobacz Pobieranie ustawień domyślnych szablonu zdalnej konfiguracji .
(Właściwości nieciągowe zostaną przekonwertowane na typ właściwości po wywołaniu 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 uzyskać wartości parametrów z obiektu Remote Config. Jeśli ustawisz wartości w zapleczu Remote Config, pobierzesz je, a następnie aktywujesz, te wartości będą dostępne dla Twojej aplikacji. W przeciwnym razie otrzymasz wartości parametrów w aplikacji skonfigurowane przy użyciu SetDefaultsAsync()
.
Aby uzyskać te wartości, użyj GetValue()
, podając klucz parametru jako argument. Spowoduje to zwrócenie wartości ConfigValue
, która ma właściwości umożliwiające przekonwertowanie wartości na różne typy podstawowe.
Krok 4: Połącz swoją aplikację w konsoli Firebase
W konsoli Firebase dodaj swoją aplikację do projektu Firebase.
Krok 5: 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 domyślną wartość w aplikacji) i wartości warunkowe. Aby dowiedzieć się więcej, zobacz Parametry i warunki zdalnej konfiguracji .
Krok 6: Pobierz i aktywuj wartości (w razie potrzeby)
Aby pobrać wartości parametrów z zaplecza Remote Config, wywołaj metodę [ FetchAsync()
][fetch]. Wszelkie wartości ustawione na zapleczu są pobierane i zapisywane w pamięci podręcznej w obiekcie Zdalna konfiguracja.
// 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
jest metodą, której podpis pasuje do parametrów jednego z przeciążeń metody ContinueWithOnMainThread()
.
W poniższym przykładowym kodzie metoda FetchComplete
przekazuje poprzednie zadanie ( fetchTask
), co pozwala FetchComplete
określić, czy zostało zakończone. Kod używa Info.LastFetchStatus
, aby następnie określić, czy zakończenie również powiodło się. Jeśli tak, wartości parametrów Zdalnej konfiguracji są następnie aktywowane za pomocą 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ą metody [ FetchAsync()
][fetch] są zapisywane lokalnie w pamięci podręcznej po zakończeniu pobierania, ale nie są udostępniane do momentu wywołania ActivateAsync()
. Dzięki temu można mieć pewność, że nowe wartości nie zostaną zastosowane w trakcie obliczeń lub w innych sytuacjach, które mogą powodować problemy lub dziwne zachowanie.
Krok 7: Słuchaj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów możesz użyć zdalnej konfiguracji w czasie rzeczywistym do nasłuchiwania aktualizacji z zaplecza zdalnej konfiguracji. Zdalna konfiguracja w czasie rzeczywistym wysyła do podłączonych urządzeń informacje o dostępności aktualizacji i automatycznie pobiera zmiany po opublikowaniu nowej wersji Zdalnej konfiguracji.
Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet Firebase Unity SDK w wersji 11.0.0+ i nowszej na platformy Android i Apple.
- Dodaj w swojej aplikacji
OnConfigUpdateListener
, aby rozpocząć nasłuchiwanie aktualizacji i automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Następnie utwórzConfigUpdateListenerEventHandler
do przetwarzania zdarzeń aktualizacji. Poniższy przykład nasłuchuje aktualizacji 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ą procedurę obsługi uzupełniania.
Następne kroki
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: