Beginnen Sie mit Firebase Remote Config


Sie können Firebase Remote Config verwenden, um Parameter in Ihrer App zu definieren und ihre Werte in der Cloud zu aktualisieren, sodass Sie das Erscheinungsbild und Verhalten Ihrer App ändern können, ohne ein App-Update zu verteilen.

Die Remote Config-Bibliothek wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte vom Remote Config-Backend abzurufen und zu steuern, wann abgerufene Werte Ihrer App zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Ladestrategien für Remote-Konfigurationen .

Dieser Leitfaden führt Sie durch die Schritte für den Einstieg und stellt einige Beispielcodes bereit, die alle zum Klonen oder Herunterladen aus dem Firebase/Quickstart-Unity- GitHub-Repository verfügbar sind.

Schritt 1: Fügen Sie Remote Config zu Ihrer App hinzu

Bevor Sie Remote Config verwenden können, müssen Sie Folgendes tun:

  • Registrieren Sie Ihr Unity-Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    • Wenn Ihr Unity-Projekt bereits Firebase verwendet, ist es bereits für Firebase registriert und konfiguriert.

    • Wenn Sie kein Unity-Projekt haben, können Sie eine Beispiel-App herunterladen.

  • Fügen Sie das Firebase Unity SDK (insbesondere FirebaseRemoteConfig.unitypackage ) zu Ihrem Unity-Projekt hinzu.

Beachten Sie, dass das Hinzufügen von Firebase zu Ihrem Unity-Projekt Aufgaben sowohl in der Firebase-Konsole als auch in Ihrem offenen Unity-Projekt erfordert (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr Unity-Projekt).

Schritt 2: In-App-Standardparameterwerte festlegen

Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, sodass sich Ihre App wie vorgesehen verhält, bevor sie eine Verbindung zum Remote Config-Backend herstellt, und sodass Standardwerte verfügbar sind, wenn im Backend keine festgelegt sind.

Erstellen Sie dazu ein String-Wörterbuch und füllen Sie es mit Schlüssel/Wert-Paaren, die die Standardwerte darstellen, die Sie hinzufügen möchten. Wenn Sie bereits Parameterwerte für das Remote Config-Backend konfiguriert haben, können Sie eine Datei herunterladen, die diese Schlüssel/Wert-Paare enthält, und sie zum Erstellen Ihres Zeichenfolgenwörterbuchs verwenden. Weitere Informationen finden Sie unter Standardeinstellungen für Remote-Konfigurationsvorlagen herunterladen .

(Nicht-String-Eigenschaften werden beim Aufruf von SetDefaultsAsync() in den Typ der Eigenschaft konvertiert.)

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 => {

Schritt 3: Rufen Sie Parameterwerte zur Verwendung in Ihrer App ab

Jetzt können Sie Parameterwerte vom Remote Config-Objekt abrufen. Wenn Sie im Remote Config-Backend Werte festlegen, diese abrufen und dann aktivieren, stehen diese Werte Ihrer App zur Verfügung. Andernfalls erhalten Sie die mit SetDefaultsAsync() konfigurierten In-App-Parameterwerte.

Um diese Werte abzurufen, verwenden Sie GetValue() und geben den Parameterschlüssel als Argument an. Dies gibt einen ConfigValue zurück, der über Eigenschaften zum Konvertieren des Werts in verschiedene Basistypen verfügt.

Schritt 4: Parameterwerte einstellen

  1. Öffnen Sie in der Firebase-Konsole Ihr Projekt.
  2. Wählen Sie „Remote-Konfiguration“ aus dem Menü, um das Remote-Konfigurations-Dashboard anzuzeigen.
  3. Definieren Sie Parameter mit denselben Namen wie die Parameter, die Sie in Ihrer App definiert haben. Für jeden Parameter können Sie einen Standardwert (der letztendlich den In-App-Standardwert überschreibt) und bedingte Werte festlegen. Weitere Informationen finden Sie unter Parameter und Bedingungen für die Remote-Konfiguration .

Schritt 5: Werte abrufen und aktivieren (nach Bedarf)

Um Parameterwerte vom Remote Config-Backend abzurufen, rufen Sie die Methode FetchAsync() auf. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt zwischengespeichert.

// 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);
}

Im obigen Code ist FetchComplete eine Methode, deren Signatur mit den Parametern einer der Überladungen von ContinueWithOnMainThread() übereinstimmt.

Im folgenden Beispielcode wird der FetchComplete Methode die vorherige Aufgabe ( fetchTask ) übergeben, wodurch FetchComplete feststellen kann, ob sie abgeschlossen wurde. Anschließend ermittelt der Code anhand von Info.LastFetchStatus , ob der Abschluss ebenfalls erfolgreich war. Wenn dies der Fall ist, werden die Parameterwerte der Remote-Konfiguration mithilfe ActivateAsync() aktiviert.

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}.");
    });
}

Mit FetchAsync() abgerufene Werte werden lokal zwischengespeichert, wenn der Abruf abgeschlossen ist, werden jedoch erst verfügbar gemacht, wenn ActivateAsync() aufgerufen wird. Dadurch können Sie sicherstellen, dass die neuen Werte nicht während der Berechnung oder zu anderen Zeitpunkten angewendet werden, was zu Problemen oder seltsamem Verhalten führen könnte.

Schritt 6: Warten Sie in Echtzeit auf Aktualisierungen

Nachdem Sie Parameterwerte abgerufen haben, können Sie Remote Config in Echtzeit verwenden, um auf Aktualisierungen vom Remote Config-Backend zu warten. Echtzeit-Remote-Config signalisiert angeschlossenen Geräten, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem Sie eine neue Remote-Config-Version veröffentlicht haben.

Echtzeit-Updates werden vom Firebase Unity SDK v11.0.0+ und höher für Android- und Apple-Plattformen unterstützt.

  1. Fügen Sie in Ihrer App einen OnConfigUpdateListener hinzu, um auf Aktualisierungen zu warten und automatisch alle neuen oder aktualisierten Parameterwerte abzurufen. Erstellen Sie dann einen ConfigUpdateListenerEventHandler , um Aktualisierungsereignisse zu verarbeiten. Das folgende Beispiel wartet auf Aktualisierungen und verwendet die neu abgerufenen Werte, um eine aktualisierte Willkommensnachricht anzuzeigen.
// 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;
}

Wenn Sie das nächste Mal eine neue Version Ihrer Remote-Konfiguration veröffentlichen, rufen Geräte, auf denen Ihre App ausgeführt wird und auf Änderungen wartet, den Abschlusshandler auf.

Nächste Schritte

Wenn Sie es noch nicht getan haben, erkunden Sie die Remote -Konfigurations -Anwendungsfälle und sehen Sie sich einige der wichtigsten Konzepte und erweiterten Strategien an, darunter: