Za pomocą Firebase Remote Config możesz definiować parametry w swojej aplikacji oraz ich wartości w chmurze, co pozwala na modyfikowanie wyglądu zachowanie aplikacji bez jej rozpowszechniania.
Biblioteka Remote Config służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z backendu Remote Config oraz gdy pobrane wartości są udostępniane aplikacji. Aby dowiedzieć się więcej, zobacz Strategie wczytywania Zdalnej konfiguracji.
Z tego przewodnika dowiesz się, Google Analytics i udostępniamy w nich przykładowy kod, dostępnych do sklonowania lub pobrania z firebase/quickstart-unity z repozytorium GitHub.
Krok 1. Dodaj Remote Config do aplikacji
Zanim będzie można użyć Remote Config musisz:
Zarejestruj projekt Unity i skonfiguruj go pod kątem korzystania z Firebase.
Jeśli Twój projekt w Unity korzysta już z Firebase, zarejestrowane i skonfigurowane w Firebase.
Jeśli nie masz projektu Unity, możesz pobrać przykładowej aplikacji.
Dodaj pakiet SDK Firebase Unity (w szczególności
FirebaseRemoteConfig.unitypackage
) do swojego projektu w Unity.
Pamiętaj, że dodanie Firebase do projektu Unity wymaga wykonania zadań zarówno w Firebase i w otwartym projekcie Unity (np. pobierasz z konsoli pliki konfiguracyjne Firebase, do swojego 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 Remote Config dzięki czemu aplikacja działa zgodnie z oczekiwaniami jeszcze przed nawiązaniem połączenia Remote Config dzięki temu, że w razie braku wartości domyślne są dostępne ustawionym w backendzie.
Aby to zrobić, utwórz słownik w postaci ciągu znaków i wypełnij go parami klucz-wartość. reprezentujących wartości domyślne, które chcesz dodać. Jeśli masz już skonfigurowane aplikacje Remote Config, możesz pobrać plik, który zawiera te pary klucz-wartość i użyj ich do utworzenia słownika ciągu znaków. Więcej informacji: Pobierz Domyślne ustawienia szablonu: Remote Config.
(Właściwości niebędące ciągami zostaną
konwertowane na typ właściwości 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 Remote Config. Jeśli ustawisz
w backendzie Remote Config, pobrały je i aktywowały,
te wartości są dostępne dla aplikacji. W przeciwnym razie otrzymasz parametr in-app
wartości skonfigurowane za pomocą
SetDefaultsAsync()
Aby uzyskać te wartości, użyj funkcji GetValue()
,
podając klucz parametru jako argument. Powoduje to zwrócenie
ConfigValue
który ma właściwości do konwertowania wartości na różne typy bazowe.
Krok 4. Ustaw wartości parametrów
- Otwórz projekt w konsoli Firebase.
- Wybierz w menu Remote Config, aby wyświetlić panel Remote Config.
- Zdefiniuj parametry o takich samych nazwach jak parametry zdefiniowane w sekcji do aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która będzie zastąpią domyślną wartość w aplikacji) i wartości warunkowe. Więcej informacji: Parametry i warunki funkcji Remote Config.
Krok 5. Pobierz i aktywuj wartości (w razie potrzeby)
Aby pobrać wartości parametrów z backendu Remote Config, wywołaj metodę
FetchAsync()
.
. Wszystkie wartości ustawione w backendzie są pobierane i
w pamięci podręcznej obiektu Remote Config.
// 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 metody
jednego z parametrów
przeciążenia
z ContinueWithOnMainThread()
.
W przykładowym kodzie poniżej metoda FetchComplete
jest przekazywana w poprzednim zadaniu
(fetchTask
), dzięki czemu FetchComplete
może sprawdzić, czy proces został ukończony.
W kodzie
Info.LastFetchStatus
aby potem ustalić, czy teraz zakończył się powodzeniem. Jeśli tak,
Wartości parametru Remote Config są następnie aktywowane za pomocą parametru 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ą
FetchAsync()
są zapisywane lokalnie w pamięci podręcznej po zakończeniu pobierania, ale nie są udostępniane do
ActivateAsync()
. Dzięki temu nowe wartości nie będą stosowane.
do połowy lub w innym czasie, który może powodować problemy lub
zachowanie użytkownika.
Krok 6. Nasłuchuj aktualizacji w czasie rzeczywistym
Po pobraniu wartości parametrów możesz używać funkcji Remote Config w czasie rzeczywistym, aby nasłuchuj aktualizacji z backendu Remote Config. Wydarzenia w czasie rzeczywistym Remote Config wysyła do połączonych urządzeń sygnały o dostępności aktualizacji. automatycznie pobierze zmiany po opublikowaniu nowego pliku Remote Config wersji.
Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet Firebase Unity SDK w wersji 11.0.0 lub nowszej na Platformy Android i Apple.
- Dodaj w aplikacji
OnConfigUpdateListener
, aby zacząć nasłuchiwać aktualizacji oraz automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Następnie utwórzConfigUpdateListenerEventHandler
, aby przetworzyć zdarzenia aktualizacji. Poniżej przykład nasłuchuje aktualizacji i używa nowo pobranych wartości do wyświetlenia zaktualizowana wiadomość powitalna.
// 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ę urządzenia Remote Config, urządzenia, które gdy masz uruchomioną aplikację, a nasłuchiwanie zmian będzie wywoływać moduł obsługi uzupełniania.
Dalsze kroki
Jeśli jeszcze nie znasz Remote Config, przypadkach użycia i przyjrzyj się niektórym dokumentację kluczowych koncepcji i zaawansowanych strategii, w tym: