Pierwsze kroki ze Zdalnej konfiguracji Firebase


Za pomocą Zdalnej konfiguracji Firebase możesz definiować parametry w swojej aplikacji oraz ich wartości w chmurze, co pozwala na modyfikowanie wyglądu zachowanie aplikacji bez jej rozpowszechniania. Z tego przewodnika dowiesz się, Google Analytics i udostępniamy w nich przykładowy kod, dostępnych do sklonowania lub pobrania z firebase/quickstart-ios repozytorium GitHub.

Krok 1. Dodaj Zdalną konfigurację do swojej aplikacji

  1. Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu Apple.

  2. W przypadku Zdalnej konfiguracji usługa Google Analytics jest wymagana do obsługi kierowanie warunkowe instancji aplikacji właściwości użytkowników i odbiorców. Upewnij się, że Ty włączyć Google Analytics w swoim projekcie.

  3. Utwórz obiekt Zdalnej konfiguracji singletonu, jak pokazano w tym przykładzie:

    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;

Ten obiekt służy do przechowywania domyślnych wartości parametrów w aplikacji; pobieranie zostało zaktualizowane wartości parametrów z backendu Zdalnej konfiguracji i kontrolować ich pobieranie. wartości są udostępniane aplikacji.

Podczas programowania zalecamy ustawienie stosunkowo niskiej minimalnej wartości pobierania interwału. Zobacz Ograniczanie wykorzystania .

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

Wartości domyślne parametrów w aplikacji możesz ustawić w Zdalnej konfiguracji. dzięki czemu aplikacja działa zgodnie z oczekiwaniami jeszcze przed nawiązaniem połączenia backend Zdalnej konfiguracji, dzięki czemu dostępne są wartości domyślne, jeśli nie są ustawionym w backendzie.

  1. Zdefiniuj zbiór nazw parametrów i domyślne wartości parametrów za pomocą tagu NSDictionary lub plik plist.

    Jeśli masz już skonfigurowane wartości parametrów backendu Zdalnej konfiguracji, możesz pobrać wygenerowany plik plist, który zawiera wszystkie wartości domyślne zapisz go w projekcie Xcode.

    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
    

    Konsola Firebase

    1. W sekcji Parametry otwórz Menu i kliknij Pobierz wartości domyślne.

    2. Gdy pojawi się odpowiedni komunikat, włącz .plist na iOS, a następnie kliknij Pobierz plik.

  2. Dodaj te wartości do obiektu Zdalnej konfiguracji za pomocą setDefaults:. Ten przykład służy do ustawiania domyślnych wartości w aplikacji za pomocą pliku plist:

    Swift

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Objective-C

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

Krok 3. Pobierz wartości parametrów do wykorzystania w aplikacji

Teraz możesz pobierać wartości parametrów z obiektu Zdalnej konfiguracji. Jeśli później ustawić wartości w backendzie Zdalnej konfiguracji, pobrać je i aktywować, te wartości są dostępne dla aplikacji. W przeciwnym razie otrzymasz parametr in-app wartości skonfigurowane za pomocą setDefaults:. Aby uzyskać te wartości, wywołaj funkcję configValueForKey: z podaniem klucza parametru jako argumentu.

Krok 4. Ustaw wartości parametrów

Za pomocą konsoli Firebase lub interfejsy API backendu Zdalnej konfiguracji, możesz utworzyć nowe domyślne wartości backendu, które zastąpią wartości w aplikacji zgodnie z logiką warunkową lub kierowaniem na użytkowników. Ta sekcja przeprowadzi Cię przez proces tworzenia tych wartości w konsoli Firebase.

  1. W konsoli Firebase otwórz projekt.
  2. Aby ją wyświetlić, wybierz z menu Zdalna konfiguracja. panelu.
  3. Zdefiniuj parametry o takich samych nazwach jak parametry zdefiniowane w sekcji do aplikacji. Dla każdego parametru możesz ustawić wartość domyślną (która będzie zastąpić domyślną wartość w aplikacji), a także ustawić wartości warunkowych. Więcej informacji: Parametry i warunki Zdalnej konfiguracji.

Krok 5. Pobierz i aktywuj wartości

Aby pobrać wartości parametrów ze Zdalnej konfiguracji, wywołaj metodę fetchWithCompletionHandler: lub fetchWithExpirationDuration:completionHandler: . Wszystkie wartości ustawione w backendzie są pobierane i w pamięci podręcznej obiektu Zdalnej konfiguracji.

Jeśli chcesz pobrać i aktywować wartości w jednym wywołaniu, użyj funkcji fetchAndActivateWithCompletionHandler:

Ten przykład pobiera wartości z backendu Zdalnej konfiguracji (nie z pamięci podręcznej). ) i wywołujeactivateWithCompletionHandler:, aby udostępnić je aplikacja:

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

Te zaktualizowane wartości parametrów wpływają na działanie i wygląd Twojej aplikacji, musisz aktywować pobrane wartości w takim czasie, aby zapewnić dla użytkownika, np. gdy następnym razem otworzy . Zapoznaj się ze strategiami wczytywania Zdalnej konfiguracji. .

Krok 6. Nasłuchuj aktualizacji w czasie rzeczywistym

Po pobraniu wartości parametrów możesz używać Zdalnej konfiguracji w czasie rzeczywistym, aby: nasłuchuj aktualizacji z backendu Zdalnej konfiguracji. Wydarzenia w czasie rzeczywistym Zdalna konfiguracja wysyła sygnały do połączonych urządzeń, gdy dostępne są aktualizacje. automatycznie pobiera zmiany po opublikowaniu nowej Zdalnej konfiguracji. wersji.

Aktualizacje w czasie rzeczywistym są obsługiwane przez pakiet SDK Firebase dla platform Apple w wersji 10.7.0 lub nowszej.

  1. W aplikacji zadzwoń pod numer addOnConfigUpdateListener, by zacząć nasłuchiwać powiadomień oraz automatycznie pobierać nowe lub zaktualizowane wartości parametrów. Poniżej przykład nasłuchuje aktualizacji, a kiedy activateWithCompletionHandler jest używa nowo pobranych wartości do wyświetlenia zaktualizowanej wiadomości powitalnej.

    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];
          });
        }];
      }
    }];
    
  2. Gdy następnym razem opublikujesz nową wersję Zdalnej konfiguracji, urządzenia które używają Twojej aplikacji i nasłuchują zmian, wywołają zakończenie .

Ograniczenia

Jeśli aplikacja pobierze zbyt wiele razy w krótkim czasie, wywołania pobierania zostaną ogranicza się i pakiet SDK powraca FIRRemoteConfigFetchStatusThrottled. Przed wersją pakietu SDK 6.3.0 funkcja Obowiązuje limit 5 żądań pobierania w ciągu 60 minut (nowsze wersje mają bardziej mniej rygorystyczne limity).

Podczas tworzenia aplikacji warto pobierać ją częściej,aby odświeżyć pamięć podręczną bardzo często (wiele razy na godzinę), co pozwala na szybkie wprowadzanie poprawek w miarę rozwoju i przetestować aplikację. Aktualizacje Zdalnej konfiguracji w czasie rzeczywistym pomijają buforowanie, gdy konfiguracja na serwerze jest aktualizowana. Uwzględnienie szybkiej iteracji w projekcie z wieloma deweloperami, możesz tymczasowo dodać Właściwość FIRRemoteConfigSettings z krótkim minimalnym interwałem pobierania (MinimumFetchInterval) w aplikacji.

Domyślny i zalecany interwał pobierania w środowisku produkcyjnym dla Zdalnej konfiguracji to 12 godzin, co oznacza, że konfiguracje są pobierane z backendu nie częściej niż raz w ciągu 12 godzin niezależnie od tego, ile zostało w rzeczywistości wywołań pobierania. Mówiąc konkretnie, minimalny odstęp czasu pobierania jest określany w tej kolejności:

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

Dalsze kroki

Zapoznaj się ze Zdalną konfiguracją, jeśli jeszcze jej nie znasz. przypadkach użycia i przyjrzyj się niektórym dokumentację kluczowych koncepcji i zaawansowanych strategii, w tym: