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:
auf. 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
If an app fetches too many times in a short time period, fetch calls are throttled and the SDK returns FIRRemoteConfigFetchStatusThrottled
. Before SDK version 6.3.0, the limit was 5 fetch requests in a 60 minute window (newer versions have more permissive limits).
During app development, you might want to refresh the cache very frequently (many times per hour) to let you rapidly iterate as you develop and test your app. To accommodate rapid iteration on a project with numerous developers, you can temporarily add a FIRRemoteConfigSettings
property with a low minimum fetch interval ( MinimumFetchInterval
) in your app.
The default and recommended production fetch interval for Remote Config is 12 hours, which means that configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made. Specifically, the minimum fetch interval is determined in this following order:
- The parameter in
fetch(long)
- The parameter in
FIRRemoteConfigSettings.MinimumFetchInterval
- The default value of 12 hours
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: