| Plattform auswählen: | iOS+ Android Web Flutter Unity C++ |
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 Verhalten Ihrer App ändern, ohne ein App-Update veröffentlichen zu müssen.
Die Remote Config-Bibliothek wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte aus dem Remote Config-Backend abzurufen und zu steuern, wann abgerufene Werte für Ihre App verfügbar gemacht werden. Weitere Informationen finden Sie unter Remote Config-Ladestrategien.
In diesem Leitfaden werden die ersten Schritte beschrieben und einige Beispielcodes bereitgestellt, die Sie im GitHub-Repository firebase/quickstart-unity klonen oder herunterladen können.
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 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.
Wenn Sie Firebase zu Ihrem Unity-Projekt hinzufügen, müssen Sie sowohl in der Firebase Console als auch in Ihrem offenen Unity-Projekt Aufgaben ausführen. 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 Standardparameterwerte für die App festlegen, damit sich Ihre App wie gewünscht verhält, bevor sie eine Verbindung zum Remote Config-Backend herstellt. Außerdem sind so Standardwerte verfügbar, 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 Remote Config-Backend-Parameterwerte 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-Attribute werden in den Typ des Attributs konvertiert, wenn SetDefaultsAsync() aufgerufen wird.
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 zur Verwendung in Ihrer App abrufen
Jetzt können Sie Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie Werte im Remote Config-Backend festgelegt, abgerufen und dann aktiviert haben, sind diese Werte für Ihre App verfügbar. Andernfalls erhalten Sie die In-App-Parameterwerte, die mit SetDefaultsAsync() konfiguriert wurden.
Verwenden Sie GetValue(), um diese Werte abzurufen, und geben Sie den Parameterschlüssel als Argument an. Dadurch wird ein ConfigValue zurückgegeben, das Attribute zum Konvertieren des Werts in verschiedene Basistypen enthält.
Schritt 4: Parameterwerte festlegen
Rufen Sie in der Firebase-Konsole DevOps & Engagement > Remote Config auf.
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 Standardwert in der App überschreibt) und bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote Config-Parameter und -Bedingungen.
Schritt 5: Werte abrufen und aktivieren (falls erforderlich)
Wenn Sie Parameterwerte aus dem Remote Config-Backend abrufen möchten, rufen Sie die Methode FetchAsync() auf. Alle Werte, die Sie im Backend festlegen, werden abgerufen und im Remote Config-Objekt 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 vorherigen Code ist FetchComplete eine Methode, deren Signatur mit den Parametern einer der Überladungen von ContinueWithOnMainThread() übereinstimmt.
Im folgenden Beispielcode wird die vorherige Aufgabe (fetchTask) an die Methode FetchComplete übergeben, damit FetchComplete feststellen kann, ob sie abgeschlossen ist. Der Code verwendet Info.LastFetchStatus, um zu bestimmen, ob der Abschluss ebenfalls erfolgreich war. Wenn ja, werden die Parameterwerte von Remote Config 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, sind aber erst verfügbar, wenn ActivateAsync() aufgerufen wird. So können Sie sicherstellen, dass die neuen Werte nicht mitten in der Berechnung oder zu anderen Zeiten angewendet werden, die Probleme oder ein merkwürdiges Verhalten verursachen könnten.
Schritt 6: Auf Updates in Echtzeit warten
Nachdem Sie Parameterwerte abgerufen haben, können Sie mit Echtzeit-Remote Config auf Aktualisierungen vom Remote Config-Backend warten. In Echtzeit signalisiert Remote Config verbundenen Geräten, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem Sie eine neue Remote Config-Version veröffentlicht haben.
Echtzeitupdates werden vom Firebase Unity SDK ab Version 11.0.0 für Android- und Apple-Plattformen unterstützt.
- Fügen Sie in Ihrer App einen
OnConfigUpdateListenerhinzu, um auf Updates zu warten und neue oder aktualisierte Parameterwerte automatisch abzurufen. Erstellen Sie dann einenConfigUpdateListenerEventHandler, um Aktualisierungsereignisse zu verarbeiten. Im folgenden Beispiel wird auf Aktualisierungen gewartet und die neu abgerufenen Werte werden verwendet, 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 von Remote Config veröffentlichen, rufen Geräte, auf denen Ihre App ausgeführt wird und die auf Änderungen warten, den Completion Handler auf.