Zacznij korzystać ze zdalnej konfiguracji Firebase


Możesz użyć zdalnego konfiguracji FireBase, aby zdefiniować parametry w aplikacji i aktualizować ich wartości w chmurze, umożliwiając modyfikację wyglądu i zachowania aplikacji bez dystrybucji aktualizacji aplikacji. Ten przewodnik przechodzi przez kroki, aby rozpocząć i zawiera przykładowy kod, z których wszystkie są dostępne do klonowania lub pobrania z repozytorium Github FireBase/QuickStart-IOS .

Krok 1: Dodaj zdalne konfigurację do swojej aplikacji

  1. Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu Apple .

  2. W przypadku zdalnego konfiguracji Google Analytics jest wymagane do warunkowego ukierunkowania instancji aplikacji na właściwości użytkownika i odbiorców. Upewnij się, że włączysz Google Analytics w swoim projekcie.

  3. Utwórz singleton zdalny obiekt konfiguracji, jak pokazano w poniższym przykładzie:

    Szybki

    remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 0
    remoteConfig.configSettings = settings

    Cel C

    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init];
    remoteConfigSettings.minimumFetchInterval = 0;
    self.remoteConfig.configSettings = remoteConfigSettings;

Ten obiekt służy do przechowywania domyślnych wartości parametrów w aplikacji, pobierania zaktualizowanych wartości parametrów z zdalnego zaplecza konfiguracji i kontroli, gdy pobierane wartości są udostępniane aplikacji.

Podczas rozwoju zaleca się ustawienie stosunkowo niskiego minimalnego przedziału pobierania. Więcej informacji można znaleźć w dławianiu .

Krok 2: Ustaw domyślne wartości parametrów w aplikacji

Możesz ustawić domyślne wartości parametrów w aplikacji w obiekcie zdalnego konfiguracji, aby aplikacja zachowała się zgodnie z przeznaczeniem przed połączeniem się z backendem konfiguracji zdalnej, a aby wartości domyślne były dostępne, jeśli nie są ustawione na zapleczu.

  1. Zdefiniuj zestaw nazw parametrów i domyślne wartości parametrów za pomocą obiektu NSDictionary lub pliku PLIST .

    Jeśli skonfigurowałeś już wartości parametrów parametrów zdalnych konfiguracji, możesz pobrać wygenerowany plik plist , który zawiera wszystkie wartości domyślne i zapisać go w projekcie XCode.

    ODPOCZYNEK

    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
    

    Konsola Firebase

    1. Na karcie Parametry otwórz menu i wybierz Wartości Pobierz domyślne .

    2. Po wyświetleniu monitu, włącz .plist dla iOS , a następnie kliknij plik do pobrania .

  2. Dodaj te wartości do zdalnego obiektu konfiguracji za pomocą setDefaults: . Poniższy przykład ustawia wartości domyślne w aplikacji z pliku Plist:

    Szybki

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Cel C

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

Krok 3: Uzyskaj wartości parametrów w swojej aplikacji

Teraz możesz uzyskać wartości parametrów z zdalnego obiektu konfiguracji. Jeśli później ustawisz wartości w zdalnym zapleczu konfiguracji, pobieraj je, a następnie aktywujesz, wartości te są dostępne dla Twojej aplikacji. W przeciwnym razie uzyskasz skonfigurowane wartości parametrów w aplikacji za pomocą setDefaults: . Aby uzyskać te wartości, wywołaj metodę configValueForKey: podając klucz parametru jako argument.

Krok 4: Ustaw wartości parametrów

Korzystając z konsoli FireBase lub zdalnych interfejsów API konfiguracyjnych , możesz utworzyć nowe wartości domyślne backend, które zastępują wartości w aplikacji zgodnie z pożądaną logiką warunkową lub kierowaniem użytkownika. W tej sekcji przechodzi przez kroki konsoli Firebase, aby utworzyć te wartości.

  1. W konsoli Firebase otwórz swój projekt.
  2. Wybierz Config Remote Config z menu, aby wyświetlić deskę rozdzielczą zdalnej konfiguracji.
  3. Zdefiniuj parametry o tych samych nazwach, co parametry zdefiniowane w swojej aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która ostatecznie zastąpi wartość domyślną domyślną w aplikacji) i możesz również ustawić wartości warunkowe. Aby dowiedzieć się więcej, zobacz zdalne parametry i warunki konfiguracji .

Krok 5: Pobierz i aktywuj wartości

Aby pobrać wartości parametrów z zdalnej konfiguracji, wywołaj fetchWithCompletionHandler: lub fetchWithExpirationDuration:completionHandler: Method. Wszelkie wartości ustawione na zapleczu są pobierane i buforowane w zdalnym obiekcie konfiguracji.

W przypadkach, w których chcesz pobierać i aktywować wartości w jednym wywołaniu, użyj fetchAndActivateWithCompletionHandler: .

Ten przykład pobiera wartości z zdalnego zaplecza konfiguracyjnego (nie buforowane wartości) i wywołania activateWithCompletionHandler: Aby udostępnić je aplikacji:

Szybki

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

Cel 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);
    }
}];

Ponieważ te zaktualizowane wartości parametrów wpływają na zachowanie i wygląd Twojej aplikacji, powinieneś aktywować pobierane wartości w czasie, które zapewniają płynne wrażenia dla użytkownika, na przykład następnym razem, gdy użytkownik otworzy aplikację. Więcej informacji i przykładów można znaleźć w zdalnych strategiach ładowania konfiguracji .

Krok 6: Słuchaj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz użyć zdalnego konfiguracji w czasie rzeczywistym do słuchania aktualizacji z plecaka zdalnego konfiguracji. Zdalne sygnały konfiguracji w czasie rzeczywistym do podłączonych urządzeń, gdy aktualizacje są dostępne i automatycznie pobiera zmiany po opublikowaniu nowej wersji zdalnej konfiguracji.

Aktualizacje w czasie rzeczywistym są obsługiwane przez FireBase SDK dla platform Apple V10.7.0+ i wyższej.

  1. W aplikacji zadzwoń do addOnConfigUpdateListener , aby rozpocząć słuchanie aktualizacji i automatycznie pobrać nowe lub zaktualizowane wartości parametrów. Poniższy przykład aktualizuje aktualizacje i po wywołaniu activateWithCompletionHandler używa nowo pobieranych wartości, aby wyświetlić zaktualizowaną wiadomość powitalną.

    Szybki

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

    Cel 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. Następnym razem, gdy opublikujesz nową wersję zdalnej konfiguracji, urządzenia, które uruchamiają Twoją aplikację, a słuchanie zmian wywołają obsługę ukończenia.

Dławienie

Jeśli aplikacja pobiera zbyt wiele razy w krótkim czasie, połączenia pobierane są dławione, a SDK zwraca FIRRemoteConfigFetchStatusThrottled . Przed SDK wersją 6.3.0 limit wynosił 5 żądań pobierania w 60 -minutowym oknie (nowsze wersje mają bardziej dopuszczalne limity).

Podczas tworzenia aplikacji możesz częściej odświeżyć pamięć podręczną (wiele razy na godzinę), aby szybko iterować podczas opracowywania i testowania aplikacji. Uaktualnienia konfiguracji zdalnych w czasie rzeczywistym automatycznie pomijaj pamięć podręczną, gdy konfiguracja jest aktualizowana na serwerze. Aby uwzględnić szybką iterację projektu z licznymi programistami, możesz tymczasowo dodać właściwość FIRRemoteConfigSettings o niskim minimalnym przedziale pobierania ( MinimumFetchInterval ) w aplikacji.

Domyślny i zalecany interwał produkcji dla zdalnej konfiguracji wynosi 12 godzin, co oznacza, że ​​konfiguracje nie zostaną pobrane z backend więcej niż raz w 12 -godzinnym oknie, niezależnie od tego, ile faktycznie wykonanych jest połączenia pobierania. W szczególności minimalny przedział pobierania jest określany w następnej kolejności:

  1. Parametr w fetch(long)
  2. Parametr w FIRRemoteConfigSettings.MinimumFetchInterval
  3. Wartość domyślna 12 godzin

Następne kroki

Jeśli jeszcze tego nie zrobiłeś, zbadaj zdalne przypadki użycia konfiguracji i spójrz na niektóre z kluczowych koncepcji i zaawansowanych dokumentacji strategii, w tym: