Pierwsze kroki ze Zdalnej konfiguracji Firebase


Za pomocą Firebase Remote Config 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 Remote Config do aplikacji

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

  2. W przypadku Remote Config wymagany jest element Google Analytics kierowanie warunkowe instancji aplikacji właściwości użytkowników i odbiorców. Upewnij się, że Ty włącz usługę Google Analytics w swoim projekcie.

  3. Utwórz obiekt pojedynczy Remote Config, 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 Remote Config oraz kontrolę po ich pobraniu. 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

Domyślne wartości parametrów w aplikacji możesz ustawić w Remote Config dzięki czemu aplikacja działa zgodnie z oczekiwaniami jeszcze przed nawiązaniem połączenia Remote Config dzięki temu, że w razie braku wartości domyślne są dostępne 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 Remote Config wartości parametru backendu, 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 Remote Config za pomocą funkcji 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 Remote Config. Jeśli później ustawić wartości w backendzie Remote Config, 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 Remote Config interfejsów API backendu, 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. Otwórz projekt w konsoli Firebase.
  2. Wybierz Remote Config z menu, aby wyświetlić Remote Config 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: Remote ConfigParametry i warunki.

Krok 5. Pobierz i aktywuj wartości

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

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

Ten przykład pobiera wartości z backendu Remote Config (nie z pamięci podręcznej) ) i wywołaniaactivateWithCompletionHandler:, 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ć funkcji Remote Config w czasie rzeczywistym, aby nasłuchuj aktualizacji z backendu Remote Config. Wydarzenia w czasie rzeczywistym Remote Config wysyła sygnał do połączonych urządzeń o dostępności aktualizacji. automatycznie pobierze zmiany po opublikowaniu nowego pliku Remote Config wersji.

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

  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ę aplikacji Remote Config, 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 w: Remote Config 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

Jeśli jeszcze nie znasz Remote Config, przypadkach użycia i przyjrzyj się niektórym dokumentację kluczowych koncepcji i zaawansowanych strategii, w tym: