Pierwsze kroki ze Zdalnej konfiguracji Firebase


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

  1. Otwórz projekt w konsoli Firebase.
  2. Wybierz w menu Remote Config, aby wyświetlić panel Remote Config.
  3. 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.

  1. Dodaj w aplikacji OnConfigUpdateListener, aby zacząć nasłuchiwać aktualizacji oraz automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Następnie utwórz ConfigUpdateListenerEventHandler, 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: