Beginnen Sie mit Firebase Remote Config


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 Erscheinungsbild und Verhalten Ihrer App ändern können, ohne ein App-Update zu verteilen. Dieser Leitfaden führt Sie durch die Schritte für den Einstieg und stellt einige Beispielcodes bereit, die alle zum Klonen oder Herunterladen aus dem GitHub-Repository firebase/quickstart-ios verfügbar sind.

Schritt 1: Fügen Sie Remote Config zu Ihrer App hinzu

  1. Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Apple-Projekt hinzu .

  2. Für Remote Config ist Google Analytics für die bedingte Ausrichtung von App-Instanzen auf Benutzereigenschaften und Zielgruppen erforderlich. Stellen Sie sicher, dass Sie Google Analytics in Ihrem Projekt aktivieren .

  3. 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-Konfigurations-Backend abzurufen und zu steuern, wenn abgerufene Werte Ihrer App zur Verfügung gestellt werden.

Während der Entwicklung wird empfohlen, ein relativ geringes Minimum -Abruf -Intervall festzulegen. Weitere Informationen finden Sie unter Drogen .

Schritt 2: In-App-Standardparameterwerte einstellen

Sie können die Parameterwerte für In-App-Standard-Parameter im Remote-Konfigurationsobjekt festlegen, so dass sich Ihre App wie beabsichtigt verhält, bevor sie eine Verbindung zum Remote-Konfigurations-Backend hat, sodass Standardwerte verfügbar sind, wenn keine im Backend festgelegt werden.

  1. Definieren Sie einen Satz von Parameternamen und Standardparameterwerte unter Verwendung eines NSDictionary -Objekts oder einer Plist -Datei .

    Wenn Sie bereits die Parameterwerte für Remote -Konfiguration 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

    1. Öffnen Sie in der Registerkarte Parameter das Menü und wählen Sie Standardwerte herunter .

    2. Aktivieren Sie bei der Aufforderung .plist für iOS und klicken Sie dann auf Datei herunterladen .

  2. Fügen Sie diese Werte dem Remote -Konfigurationsobjekt mit setDefaults: . Das folgende Beispiel legt die In-App-Standardwerte aus einer Plist-Datei fest:

    Schnell

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Ziel c

    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];

Schritt 3: Nehmen Sie Parameterwerte in Ihrer App ab, um sie zu verwenden

Jetzt können Sie Parameterwerte aus dem Remote -Konfigurationsobjekt abrufen. Wenn Sie später Werte im Remote -Konfigurations -Backend festlegen, abrufen und dann aktivieren, stehen dieser Werte Ihrer App zur Verfügung. Andernfalls erhalten Sie die mit setDefaults: . Um diese Werte zu erhalten, rufen Sie die configValueForKey: Methode auf und geben Sie den Parameterschlüssel als Argument an.

Schritt 4: Setzen Sie die Parameterwerte

Unter Verwendung der Firebase-Konsole oder der Remote-Konfigurations-Backend-APIs können Sie neue Backend-Standardwerte erstellen, die die In-App-Werte gemäß Ihrer gewünschten bedingten Logik oder Benutzerziele überschreiben. Dieser Abschnitt führt Sie durch die Schritte der Firebase -Konsole, um diese Werte zu erstellen.

  1. Öffnen Sie in der Firebase -Konsole Ihr Projekt.
  2. Wählen Sie im Menü die Remote -Konfiguration , um das Remote -Konfigurations -Dashboard anzuzeigen.
  3. Definieren Sie Parameter mit den gleichen Namen wie die Parameter, die Sie in Ihrer App definiert haben. Für jeden Parameter können Sie einen Standardwert festlegen (der letztendlich den Standardwert für In-App überschreibt) und auch die bedingten Werte festlegen können. Weitere Informationen finden Sie unter Remote -Konfigurationsparametern und -bedingungen .

Schritt 5: Werte abrufen und aktivieren

Um Parameterwerte aus der Remote -Konfiguration abzurufen, rufen Sie die fetchWithCompletionHandler: oder fetchWithExpirationDuration:completionHandler: Methode. Alle Werte, die Sie im Backend festlegen, werden im Remote -Konfigurationsobjekt abgerufen und zwischengespeichert.

Verwenden Sie für Fälle, in denen Sie Werte in einem Aufruf abrufen und aktivieren möchten, fetchAndActivateWithCompletionHandler: .

In diesem Beispiel werden Werte aus dem Remote -Konfigurations -Backend (nicht zwischengespeicherte Werte) und aufgerufen activateWithCompletionHandler: 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 diese aktualisierten Parameterwerte das Verhalten und das Aussehen Ihrer App beeinflussen, sollten Sie die abgerufenen Werte zu einem Zeitpunkt aktivieren, der eine reibungslose Erfahrung für Ihren Benutzer gewährleistet, z. B. beim nächsten Mal, dass der Benutzer Ihre App öffnet. Weitere Informationen und Beispiele finden Sie unter Remote -Konfigurationsladestrategien .

Schritt 6: Hören Sie in Echtzeit Updates an

Nachdem Sie Parameterwerte abgerufen haben, können Sie eine Echtzeit-Remote-Konfiguration verwenden, um nach Updates aus dem Remote-Konfigurations-Backend anzuhören. Echtzeit-Remote-Konfigurationssignale auf verbundene Geräte Wenn Updates verfügbar sind und die Änderungen automatisch abrufen, nachdem Sie eine neue Remote-Konfigurationsversion veröffentlicht haben.

Echtzeit-Updates werden von der Firebase SDK für Apple-Plattformen v10.7.0+ und höher unterstützt.

  1. Rufen Sie in Ihrer App addOnConfigUpdateListener auf, um nach Updates zu starten und automatisch neue oder aktualisierte Parameterwerte abzurufen. Das folgende Beispiel hört auf Updates zu und wird bei activateWithCompletionHandler aufgerufen, die neu abgerufenen Werte verwendet, um eine aktualisierte Begrüßungsnachricht anzuzeigen.

    Schnell

    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()
        }
      }
    }
    

    Ziel 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];
          });
        }];
      }
    }];
    
  2. Wenn Sie das nächste Mal eine neue Version Ihrer Remote -Konfiguration veröffentlichen, werden Geräte, auf denen Ihre App ausgeführt wird, und das Hören von Änderungen den Fertigstellungshandler aufrufen.

Drosselung

Wenn eine App in kurzer Zeit zu oft abreißt, werden Abrufanrufe gedrosselt und der SDK gibt FIRRemoteConfigFetchStatusThrottled zurück. Vor der SDK -Version 6.3.0 betrug das Limit 5 Abrufanfragen in einem 60 -minütigen Fenster (neuere Versionen haben mehr zulässige Grenzwerte).

Während der App -Entwicklung möchten Sie möglicherweise häufiger abrufen, um den Cache sehr häufig (viele Male pro Stunde) zu aktualisieren, damit Sie Ihre App beim Entwicklung und Testen schnell iterieren können. Echtzeit-Remote-Konfigurationsaktualisierungen umgehen den Cache automatisch, wenn die Konfiguration auf dem Server aktualisiert wird. Um eine schnelle Iteration eines Projekts mit zahlreichen Entwicklern auszugleichen, können Sie in Ihrer App eine FIRRemoteConfigSettings -Eigenschaft mit einem niedrigen Mindestfetch -Intervall ( MinimumFetchInterval ) hinzufügen.

Das Standard- und empfohlene Produktionsfetchintervall für Remote -Konfiguration beträgt 12 Stunden, was bedeutet, dass Konfigurationen nicht mehr als einmal in einem 12 -Stunden -Fenster mehr als einmal aus dem Backend abgerufen werden, unabhängig davon, wie viele Abrufanrufe tatsächlich getätigt werden. Insbesondere wird das Minimum -Abruf -Intervall in der folgenden Reihenfolge bestimmt:

  1. Der Parameter in fetch(long)
  2. Der Parameter in FIRRemoteConfigSettings.MinimumFetchInterval
  3. Der Standardwert von 12 Stunden

Nächste Schritte

Wenn Sie es noch nicht getan haben, erkunden Sie die Remote -Konfigurations -Anwendungsfälle und sehen Sie sich einige der wichtigsten Konzepte und erweiterten Strategien an, darunter: