Mit Firebase Remote Config können Sie Parameter in Ihrer App definieren und aktualisieren ihre Werte in der Cloud, sodass Sie das Erscheinungsbild deiner App, ohne ein App-Update zu veröffentlichen. In dieser Anleitung werden die ersten Schritte erläutert und es wird Beispielcode bereitgestellt, der aus dem GitHub-Repository firebase/quickstart-ios geklont oder heruntergeladen werden kann.
Schritt 1: Remote Config zur App hinzufügen
Falls noch nicht geschehen, Fügen Sie Ihrem Apple-Projekt Firebase hinzu.
Für Remote Config ist Google Analytics erforderlich für: bedingtes Targeting von App-Instanzen Nutzereigenschaften und Zielgruppen. Achten Sie darauf, dass ich Aktivieren Sie Google Analytics in Ihrem Projekt.
Erstellen Sie das Singleton-Objekt Remote Config wie im folgenden Beispiel:
Swift
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
Objective-C
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
Dieses Objekt wird zum Speichern von In-App-Standardparameterwerten verwendet. Aktualisierte Werte werden abgerufen. Parameterwerte aus dem Remote Config-Back-End steuern und steuern, wann sie abgerufen werden werden für Ihre App zur Verfügung gestellt.
Während der Entwicklung empfiehlt es sich, einen relativ niedrigen Mindestabrufbereich festzulegen Intervall. Siehe Drosselung .
Schritt 2: Standardwerte für In-App-Parameter festlegen
Du kannst In-App-Standardparameterwerte in der Remote Config festlegen -Objekt, damit sich Ihre App wie beabsichtigt verhält, bevor sie eine Verbindung zum Remote Config-Back-End, sodass Standardwerte verfügbar sind, falls keine verfügbar sind. Back-End festgelegt werden.
Definieren Sie eine Reihe von Parameternamen und Standardparameterwerten mithilfe eines
NSDictionary
-Objekt oder ein plist-Datei an.Wenn Sie Remote Config-Backend-Parameterwerte bereits konfiguriert haben, können Sie eine generierte
plist
-Datei herunterladen, die alle Standardwerte und in Ihrem Xcode-Projekt speichern.REST
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
Unter Parameter auf, öffne das Menü und wählen Sie Standardwerte herunterladen aus.
Aktivieren Sie auf Aufforderung .plist für iOS und klicken Sie dann auf Datei herunterladen.
Fügen Sie diese Werte mithilfe vonRemote Config
setDefaults:
Im folgenden Beispiel werden In-App-Standardwerte aus einer PLIST-Datei festgelegt:Swift
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Objective-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
Schritt 3: Parameterwerte zur Verwendung in Ihrer App abrufen
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, sind diese Werte für Ihre App verfügbar. Andernfalls werden die In-App-Parameterwerte verwendet, die mit setDefaults:
konfiguriert wurden.
Rufen Sie zum Abrufen dieser Werte die Methode
configValueForKey:
, wobei der Parameterschlüssel als Argument angegeben wird.
Schritt 4: Parameterwerte festlegen
Mit der Firebase-Konsole oder der Remote Config Back-End-APIs, können Sie neue Backend-Standardwerte erstellen, die die In-App-Werte überschreiben, gemäß der gewünschten bedingten Logik oder dem Nutzer-Targeting aus. Dieser Abschnitt führt Sie durch die Schritte in der Firebase-Konsole zum Erstellen dieser Werte.
- Öffnen Sie Ihr Projekt in der Firebase-Konsole.
- Wähle Remote Config aus dem Menü aus, um die Remote Config aufzurufen Dashboard.
- Definieren Sie Parameter mit denselben Namen wie die Parameter, die Sie in für Ihre App. Für jeden Parameter können Sie einen Standardwert festlegen, der In-App-Standardwert überschreiben) und Sie können auch bedingten Werten. Weitere Informationen finden Sie unter Remote Config Parameter und Bedingungen.
Schritt 5: Werte abrufen und aktivieren
Rufen Sie zum Abrufen von Parameterwerten von Remote Config die Methode
fetchWithCompletionHandler:
oder
fetchWithExpirationDuration:completionHandler:
. Alle Werte, die Sie im Back-End festlegen, werden abgerufen und
im Remote Config-Objekt zwischengespeichert.
Wenn Sie Werte in einem Aufruf abrufen und aktivieren möchten, verwenden Sie
fetchAndActivateWithCompletionHandler:
In diesem Beispiel werden Werte aus dem Remote Config-Back-End abgerufen (nicht im Cache gespeichert).
Werte) und AnrufeactivateWithCompletionHandler:
, um sie für alle
der App:
Swift
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() }
Objective-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); } }];
Weil sich diese aktualisierten Parameterwerte auf das Verhalten und die Darstellung auswirken. Ihrer App verwenden, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, wie z. B. wenn sie Ihre Website das nächste Mal öffnen, Siehe Remote Config-Ladestrategien finden Sie weitere Informationen und Beispiele.
Schritt 6: In Echtzeit auf Updates warten
Nachdem Sie Parameterwerte abgerufen haben, können Sie Remote Config in Echtzeit verwenden, um Warten auf Aktualisierungen vom Remote Config-Back-End. Remote Config signalisiert verbundenen Geräten in Echtzeit, wenn Updates verfügbar sind, und ruft die Änderungen automatisch ab, nachdem Sie eine neue Remote Config-Version veröffentlicht haben.
Echtzeitaktualisierungen werden vom Firebase SDK für Apple-Plattformen ab Version 10.7.0 unterstützt.
Rufen Sie in Ihrer App
addOnConfigUpdateListener
auf, um auf Updates zu warten und ruft automatisch alle neuen oder aktualisierten Parameterwerte ab. Die folgenden Beispiel: wartet auf Updates und wennactivateWithCompletionHandler
aufgerufen, verwendet die neu abgerufenen Werte zur Anzeige einer aktualisierten Willkommensnachricht.Swift
remoteConfig.addOnConfigUpdateListener { configUpdate, error in guard let configUpdate, error == nil else { print("Error listening for config updates: \(error)") } print("Updated keys: \(configUpdate.updatedKeys)") self.remoteConfig.activate { changed, error in guard error == nil else { return self.displayError(error) } DispatchQueue.main.async { self.displayWelcome() } } }
Objective-C
__weak __typeof__(self) weakSelf = self; [self.remoteConfig addOnConfigUpdateListener:^(FIRRemoteConfigUpdate * _Nonnull configUpdate, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error listening for config updates %@", error.localizedDescription); } else { NSLog(@"Updated keys: %@", configUpdate.updatedKeys); __typeof__(self) strongSelf = weakSelf; [strongSelf.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) { if (error != nil) { NSLog(@"Activate error %@", error.localizedDescription); } dispatch_async(dispatch_get_main_queue(), ^{ [strongSelf displayWelcome]; }); }]; } }];
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 die auf Änderungen warten, den Abschluss-Handler auf.
Drosselung
Wenn eine App innerhalb eines kurzen Zeitraums zu viele Abrufe durchführt, werden Abrufaufrufe
gedrosselt und das SDK gibt
FIRRemoteConfigFetchStatusThrottled
Vor der SDK-Version 6.3.0
Limit lag bei 5 Abrufanfragen in 60 Minuten
-Fenster (neuere Versionen haben stärkere Begrenzungen).
Während der App-Entwicklung möchten Sie möglicherweise häufiger Daten abrufen,um den Cache zu aktualisieren.
sehr häufig (viele Male pro Stunde), damit Sie schnell iterieren können, während Sie
und testen Sie Ihre App. Echtzeitaktualisierungen von Remote Config umgehen automatisch den
wenn die Konfiguration auf dem Server aktualisiert wird. Um die schnelle Wiederholung eines Projekts mit zahlreichen Entwicklern zu ermöglichen, können Sie der App vorübergehend eine FIRRemoteConfigSettings
-Eigenschaft mit einem niedrigen Mindestabrufintervall (MinimumFetchInterval
) hinzufügen.
Das standardmäßige und empfohlene Abrufintervall in der Produktion für Remote Config beträgt 12 Stunden, was Das bedeutet, dass Konfigurationen nicht öfter als einmal innerhalb von zwölf Stunden vom Back-End abgerufen werden. unabhängig davon, wie viele Abrufaufrufe erfolgen. Konkret wird das minimale Abrufintervall in der folgenden Reihenfolge ermittelt:
- Der Parameter in
fetch(long)
- Der Parameter in
FIRRemoteConfigSettings.MinimumFetchInterval
- Der Standardwert von 12 Stunden
Nächste Schritte
Sehen Sie sich die Remote Config an, falls Sie dies noch nicht getan haben Anwendungsfälle und sehen uns einige der Schlüsselkonzepte und Dokumentation zu erweiterten Strategien, einschließlich: