Mit Firebase Remote Config können Sie Parameter in Ihrer App definieren und ihre Werte in der Cloud aktualisieren. So können Sie das Erscheinungsbild und das Verhalten Ihrer App ändern, ohne ein App-Update bereitzustellen.
Mit der Remote Config-Bibliothek werden Standardparameterwerte in der App gespeichert, aktualisierte Parameterwerte aus dem Remote Config-Back-End abgerufen und gesteuert, wann abgerufene Werte für Ihre App verfügbar gemacht werden. Weitere Informationen finden Sie unter Ladestrategien für Remote Config.
In dieser Anleitung werden die ersten Schritte erläutert und es wird Beispielcode bereitgestellt, der aus dem GitHub-Repository firebase/quickstart-unity geklont oder heruntergeladen werden kann.
Schritt 1: Remote Config zur App hinzufügen
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 in Ihrem Unity-Projekt bereits Firebase verwendet wird, 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 Ihrem Unity-Projekt das Firebase Unity SDK (insbesondere
FirebaseRemoteConfig.unitypackage
) hinzu.
Das Hinzufügen von Firebase zu Ihrem Unity-Projekt umfasst Aufgaben sowohl in der FirebaseConsole als auch in Ihrem geöffneten Unity-Projekt. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr Unity-Projekt.
Schritt 2: In-App-Standardparameterwerte festlegen
Sie können im Remote Config-Objekt In-App-Standardparameterwerte festlegen, damit sich Ihre App wie vorgesehen verhält, bevor eine Verbindung zum Remote Config-Backend hergestellt wird. Außerdem sind dann Standardwerte verfügbar, falls im Backend keine festgelegt sind.
Erstellen Sie dazu ein String-Wörterbuch und füllen Sie es mit Schlüssel/Wert-Paaren aus, die die gewünschten Standardwerte darstellen. Wenn Sie bereits Remote Config-Backendparameterwerte konfiguriert haben, können Sie eine Datei mit diesen Schlüssel/Wert-Paaren herunterladen und damit Ihr String-Wörterbuch erstellen. Weitere Informationen finden Sie unter Remote Config-Standardvorlagen herunterladen.
Nicht-String-Properties werden beim Aufruf von SetDefaultsAsync()
in den Typ der Property umgewandelt.
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: Parameterwerte für die Verwendung in Ihrer App abrufen
Sie können jetzt Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie Werte im Remote Config-Back-End festlegen, sie abgerufen und dann aktiviert haben, sind diese Werte für Ihre App verfügbar. Andernfalls werden die In-App-Parameterwerte mit SetDefaultsAsync()
konfiguriert.
Zum Abrufen dieser Werte verwenden Sie GetValue()
und geben den Parameterschlüssel als Argument an. Dies gibt ein ConfigValue
zurück, das Eigenschaften zum Konvertieren des Werts in verschiedene Basistypen hat.
Schritt 4: Parameterwerte festlegen
- Öffnen Sie in der Firebase Console Ihr Projekt.
- Wählen Sie im Menü Remote Config aus, um das Remote Config-Dashboard aufzurufen.
- 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 schließlich den In-App-Standardwert überschreibt, und bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote Config-Parameter und ‑Bedingungen.
Schritt 5: Werte nach Bedarf abrufen und aktivieren
Rufen Sie zum Abrufen von Parameterwerten vom Remote Config-Back-End die Methode FetchAsync()
auf. Alle Werte, die Sie im Back-End festlegen, werden im Objekt Remote Config abgerufen und im Cache gespeichert.
// 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 Methode FetchComplete
die vorherige Aufgabe (fetchTask
) übergeben, damit FetchComplete
feststellen kann, ob sie abgeschlossen ist.
Im Code wird mithilfe von Info.LastFetchStatus
ermittelt, ob der Abschluss auch erfolgreich war. In diesem Fall werden Remote Config-Parameterwerte mit 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}.");
});
}
Werte, die mit FetchAsync()
abgerufen werden, werden nach Abschluss des Abrufs lokal im Cache gespeichert, aber erst verfügbar gemacht, wenn ActivateAsync()
aufgerufen wird. So können Sie dafür sorgen, dass die neuen Werte nicht während der Berechnung oder zu anderen Zeiten angewendet werden, die zu Problemen oder ungewöhnlichem Verhalten führen könnten.
Schritt 6: Auf Echtzeit-Updates achten
Nachdem Sie Parameterwerte abgerufen haben, können Sie mithilfe von Remote Config in Echtzeit auf Aktualisierungen vom Remote Config-Backend warten. Remote Config signalisiert verbundenen Geräten in Echtzeit, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem eine neue Remote Config-Version veröffentlicht wurde.
Echtzeitaktualisierungen werden vom Firebase Unity SDK ab Version 11.0.0 und höher für Android- und Apple-Plattformen unterstützt.
- Fügen Sie in Ihrer App einen
OnConfigUpdateListener
hinzu, um nach Updates zu suchen und neue oder aktualisierte Parameterwerte automatisch abzurufen. Erstellen Sie dann eineConfigUpdateListenerEventHandler
, um Aktualisierungsereignisse zu verarbeiten. Im folgenden Beispiel wird auf Aktualisierungen gewartet und die neu abgerufenen Werte werden verwendet, um eine aktualisierte Begrüßungsnachricht 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 Config veröffentlichen, rufen Geräte, auf denen Ihre App ausgeführt wird und Änderungen überwacht, den Abschluss-Handler auf.
Nächste Schritte
Sehen Sie sich die Remote Config Anwendungsfälle an und lesen Sie die Dokumentation zu wichtigen Konzepten und erweiterten Strategien, darunter: