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. 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-ios verfügbar sind.
Schritt 1: Fügen Sie Ihrer App Remote Config hinzu
Installieren Sie das Firebase SDK für Apple-Plattformen.
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-Back-End 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 .
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.
Definieren Sie mithilfe eines
NSDictionary
-Objekts oder einer Plist-Datei eine Reihe von Parameternamen und Standardparameterwerten.Wenn Sie bereits Remote Config-Backend-Parameterwerte konfiguriert haben, können Sie eine generierte
plist
-Datei herunterladen, die alle Standardwerte enthält, und sie in Ihrem Xcode-Projekt speichern.AUSRUHEN
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
Firebase-Konsole
Öffnen Sie auf der Registerkarte Parameter das Menü und wählen Sie Standardwerte herunterladen aus .
Wenn Sie dazu aufgefordert werden, aktivieren Sie .plist für iOS und klicken Sie dann auf Datei herunterladen .
Fügen Sie diese Werte mit
setDefaults:
. Im folgenden Beispiel werden In-App-Standardwerte aus einer Plist-Datei festgelegt:Schnell
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Ziel c
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
Schritt 3: Abrufen von Parameterwerten zur Verwendung in Ihrer App
Jetzt können Sie Parameterwerte aus dem Remote Config-Objekt abrufen. Wenn Sie später 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 setDefaults:
konfiguriert wurden. Rufen Sie zum Abrufen dieser Werte die Methode configValueForKey:
auf und geben Sie den Parameter key als Argument an.
Schritt 4: Parameterwerte einstellen
Mit der Firebase-Konsole oder den Remote Config-Back-End-APIs können Sie neue Back-End-Standardwerte erstellen, die die In-App-Werte entsprechend Ihrer gewünschten Bedingungslogik oder Benutzerausrichtung überschreiben. Dieser Abschnitt führt Sie durch die Schritte der Firebase-Konsole zum Erstellen dieser Werte.
- Ö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 festlegen (der schließlich den In-App-Standardwert überschreibt) und Sie können auch bedingte Werte festlegen. Weitere Informationen finden Sie unter Remote-Konfigurationsparameter und -bedingungen .
Schritt 5: Werte abrufen und aktivieren
Rufen Sie zum Abrufen von Parameterwerten aus Remote Config die Methode fetchWithCompletionHandler:
oder fetchWithExpirationDuration:completionHandler:
. Alle Werte, die Sie im Back-End festlegen, werden abgerufen und im Remote Config-Objekt zwischengespeichert.
Verwenden Sie für Fälle, in denen Sie Werte in einem Aufruf abrufen und aktivieren möchten, fetchAndActivateWithCompletionHandler:
.
Dieses Beispiel ruft Werte aus dem Remote Config-Backend ab (keine zwischengespeicherten Werte) und ruft activateWithCompletionHandler:
auf, 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) { if (error != nil) { NSLog(@"Activate error: %@", error.localizedDescription); } else { dispatch_async(dispatch_get_main_queue(), ^{ [self displayWelcome]; }); } }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } }];
Da sich diese aktualisierten Parameterwerte auf das Verhalten und Erscheinungsbild Ihrer App auswirken, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der eine reibungslose Erfahrung für Ihren Benutzer gewährleistet, z. B. wenn der Benutzer Ihre App das nächste Mal öffnet. Weitere Informationen und Beispiele finden Sie unter Strategien zum Laden von Remote-Konfigurationen .
Drosselung
Wenn eine App in kurzer Zeit zu oft abruft, werden Abrufaufrufe gedrosselt und das SDK gibt FIRRemoteConfigFetchStatusThrottled
zurück. Vor der SDK-Version 6.3.0 lag das Limit bei 5 Abrufanforderungen in einem 60-Minuten-Fenster (neuere Versionen haben mehr 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 eines Projekts mit zahlreichen Entwicklern zu ermöglichen, können Sie Ihrer App vorübergehend eine FIRRemoteConfigSettings
Eigenschaft mit einem niedrigen Mindestabrufintervall ( MinimumFetchInterval
) hinzufügen.
Das standardmäßige und empfohlene Produktionsabrufintervall für Remote Config beträgt 12 Stunden, was bedeutet, dass Konfigurationen nicht mehr als einmal in einem 12-Stunden-Fenster vom Back-End 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, erkunden Sie die Anwendungsfälle von Remote Config und werfen Sie einen Blick auf einige der Dokumentationen zu Schlüsselkonzepten und erweiterten Strategien, darunter: