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 Aussehen und Verhalten Ihrer App ändern können, ohne ein App-Update verteilen zu müssen.
Die Remote Config-Bibliothek wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte aus dem Remote Config-Back-End abzurufen und zu steuern, wann abgerufene Werte Ihrer App zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Strategien zum Laden von Remote-Konfigurationen .
Dieser Leitfaden führt Sie durch die Schritte für den Einstieg und enthält einige Beispielcodes, die alle zum Klonen oder Herunterladen aus dem GitHub-Repository firebase/quickstart-unity verfügbar sind.
Schritt 1: Fügen Sie Ihrer App Remote Config 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 Firebase bereits 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 geöffneten Unity-Projekt umfasst (Sie laden beispielsweise Firebase-Konfigurationsdateien von der Konsole herunter und verschieben sie dann in Ihr Unity-Projekt).
Schritt 2: Legen Sie die Standardparameterwerte in der App fest
Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, sodass sich Ihre App wie beabsichtigt verhält, bevor sie eine Verbindung zum Remote Config-Back-End herstellt, und damit Standardwerte verfügbar sind, wenn keine im Back-End festgelegt sind.
Erstellen Sie dazu ein Zeichenfolgenwö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-Back-End-Parameterwerte 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 Config-Vorlagen herunterladen .
(Nicht-String-Eigenschaften werden in den Typ der Eigenschaft 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: Abrufen von Parameterwerten zur Verwendung in Ihrer App
Jetzt können Sie Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie Werte im Remote Config-Back-End festlegen, abrufen und dann aktivieren, stehen diese Werte Ihrer App zur Verfügung. Andernfalls erhalten Sie die In-App-Parameterwerte, die mit SetDefaultsAsync()
konfiguriert wurden.
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: Verbinden Sie Ihre App in der Firebase-Konsole
Fügen Sie in der Firebase-Konsole Ihre App zu Ihrem Firebase-Projekt hinzu.
Schritt 5: Parameterwerte einstellen
- Öffnen Sie in der Firebase-Konsole Ihr Projekt.
- Wählen Sie Remote Config aus dem Menü aus, um das Remote Config-Dashboard anzuzeigen.
- 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 6: Werte abrufen und aktivieren (nach Bedarf)
Um Parameterwerte aus dem Remote Config-Back-End abzurufen, rufen Sie die FetchAsync()
Methode auf. Alle Werte, die Sie im Back-End 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 die FetchComplete
Methode an die vorherige Aufgabe ( fetchTask
) übergeben, wodurch FetchComplete
feststellen kann, ob sie abgeschlossen wurde. Der Code verwendet dann Info.LastFetchStatus
um festzustellen, ob das Finish auch erfolgreich war. Wenn dies der Fall ist, werden die Remote Config-Parameterwerte mithilfe von 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}.");
});
}
Über FetchAsync()
abgerufene Werte werden lokal zwischengespeichert, wenn der Abruf abgeschlossen ist, aber nicht verfügbar gemacht, bis ActivateAsync()
aufgerufen wird. Dadurch können Sie sicherstellen, dass die neuen Werte nicht während der Berechnung angewendet werden oder zu anderen Zeiten, die Probleme oder ungewöhnliches Verhalten verursachen könnten.
Schritt 7: (Optional) Aktivieren Sie den Entwicklermodus
Um den Entwicklermodus zu aktivieren, der zum Deaktivieren der Drosselung während der Entwicklung verwendet werden kann, können Sie die FirebaseRemoteConfig.Setting
Eigenschaft verwenden und ein neues ConfigSettings
festlegen, wobei IsDeveloperMode
auf „true“ gesetzt ist.
Nächste Schritte
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: