Mit Firebase Remote Config können Sie Parameter in Ihrer App definieren und deren Werte in der Cloud aktualisieren. So können Sie das Erscheinungsbild und Verhalten Ihrer App ändern, ohne ein App-Update zu verteilen. Diese Anleitung führt Sie durch die ersten Schritte und enthält Beispielcode, der zum Klonen oder Herunterladen aus dem GitHub-Repository von firebase / quickstart-ios verfügbar ist.
Fügen Sie Ihrer App Remote Config hinzu
Installieren Sie das Firebase SDK für iOS.
Erstellen Sie das Singleton Remote Config-Objekt wie im folgenden Beispiel gezeigt:
Schnell
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
Ziel c
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
Dieses Objekt wird verwendet, um In-App-Standardparameterwerte zu speichern, aktualisierte Parameterwerte aus dem Remote Config-Backend abzurufen und zu steuern, wann abgerufene Werte Ihrer App zur Verfügung gestellt werden.
Während der Entwicklung wird empfohlen, ein relativ niedriges Mindestabrufintervall festzulegen. Weitere Informationen finden Sie unter Drosselung .
Festlegen von In-App-Standardparameterwerten
Sie können In-App-Standardparameterwerte im Remote Config-Objekt festlegen, damit sich Ihre App wie beabsichtigt verhält, bevor sie eine Verbindung zum Remote Config-Backend herstellt, und damit Standardwerte verfügbar sind, wenn im Backend keine festgelegt sind.
- Definieren Sie eine Reihe von Parameternamen und Standardparameterwerten mithilfe eines NSDictionary- Objekts oder einer Plist-Datei .
- Fügen Sie diese Werte mit setDefaults zum Remote Config-Objekt hinzu : . Im folgenden Beispiel werden In-App-Standardwerte aus einer
plist
Datei festgelegt:
Schnell
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Ziel c
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
Holen Sie sich Parameterwerte zur Verwendung in Ihrer App
Jetzt können Sie Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie später Werte im Remote Config-Backend festlegen, abrufen und dann aktivieren, stehen diese Werte Ihrer App zur Verfügung. Andernfalls erhalten Sie die In-App-Parameterwerte, die mit setDefaults konfiguriert wurden : . Um diese Werte abzurufen , rufen Sie die Methode configValueForKey: auf und geben Sie den Parameterschlüssel als Argument an.
Parameterwerte einstellen
Mit der Firebase-Konsole oder den Remote Config-Backend-APIs können Sie neue Backend-Standardwerte erstellen, die die In-App-Werte gemäß Ihrer gewünschten bedingten Logik oder Benutzerausrichtung überschreiben. Dieser Abschnitt führt Sie durch die Schritte der Firebase-Konsole, um diese Werte zu erstellen.
- Öffnen Sie in der Firebase-Konsole Ihr Projekt.
- Wählen Sie Remote Config aus dem Menü, 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 festlegen (der eventuell den In-App-Standardwert überschreibt) und Sie können auch bedingte Werte festlegen. Weitere Informationen finden Sie unter Parameter und Bedingungen für die Remote-Konfiguration .
Werte abrufen und aktivieren
Rufen Sie zum Abrufen von Parameterwerten aus Remote Config die Methode fetchWithCompletionHandler: oder fetchWithExpirationDuration: finishHandler: auf . Alle Werte, die Sie im Backend festlegen, werden im Remote Config-Objekt abgerufen und zwischengespeichert.
Verwenden Sie in Fällen, in denen Sie Werte in einem Aufruf fetchAndActivateWithCompletionHandler:
und aktivieren möchten, fetchAndActivateWithCompletionHandler:
.
In diesem Beispiel werden Werte aus dem Remote Config-Backend abgerufen (keine zwischengespeicherten Werte) und activateWithCompletionHandler:
aufgerufen, um sie der App zur Verfügung zu stellen:
Schnell
remoteConfig.fetch() { (status, error) -> Void in if status == .success { print("Config fetched!") self.remoteConfig.activate() { (changed, error) in // ... } } else { print("Config not fetched") print("Error: \(error?.localizedDescription ?? "No error available.")") } self.displayWelcome() }
Ziel c
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) { if (status == FIRRemoteConfigFetchStatusSuccess) { NSLog(@"Config fetched!"); [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) { // ... }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } [self displayWelcome]; }];
Da sich diese aktualisierten Parameterwerte auf das Verhalten und das Erscheinungsbild Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der Ihrem Benutzer eine reibungslose Benutzererfahrung gewährleistet, z. B. beim nächsten Öffnen der App durch den Benutzer. Weitere Informationen und Beispiele finden Sie unter Ladestrategien für die Remote-Konfiguration .
Drosselung
Wenn eine App in kurzer Zeit zu oft FIRRemoteConfigFetchStatusThrottled
gedrosselt und das SDK gibt FIRRemoteConfigFetchStatusThrottled
. Vor SDK Version 6.3.0 betrug das Limit 5 Abrufanforderungen in einem 60-Minuten-Fenster (neuere Versionen haben mehr zulässige Limits).
Während der App-Entwicklung möchten Sie den Cache möglicherweise sehr häufig (mehrmals pro Stunde) aktualisieren, damit Sie beim Entwickeln und Testen Ihrer App schnell iterieren können. Um eine schnelle Iteration in einem Projekt mit zahlreichen Entwicklern zu ermöglichen, können Sie Ihrer App vorübergehend eine FIRRemoteConfigSettings
Eigenschaft mit einem niedrigen Mindestabrufintervall ( MinimumFetchInterval
) MinimumFetchInterval
.
Das standardmäßige und empfohlene Produktionsabrufintervall für Remote Config beträgt 12 Stunden. Dies bedeutet, dass Konfigurationen in einem 12-Stunden-Fenster nicht mehr als einmal vom Backend abgerufen werden, unabhängig davon, wie viele Abrufaufrufe tatsächlich getätigt werden. Insbesondere wird das minimale Abrufintervall in der folgenden Reihenfolge bestimmt:
- Der Parameter in
fetch(long)
- Der Parameter in
FIRRemoteConfigSettings.MinimumFetchInterval
- Der Standardwert von 12 Stunden
Nächste Schritte
Wenn Sie dies noch nicht getan haben, sehen Sie sich die Anwendungsfälle für die Remote-Konfiguration an und sehen Sie sich einige der wichtigsten Konzepte und Dokumentationen zu erweiterten Strategien an, darunter: