Za pomocą Firebase Remote Config możesz definiować parametry w swojej aplikacji i aktualizować ich wartości w chmurze, co pozwala modyfikować wygląd i zachowanie aplikacji bez rozpowszechniania 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
Zainstaluj SDK FireBase dla platform Apple.
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.
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
Na karcie Parametry otwórz menu i wybierz Wartości Pobierz domyślne .
Po wyświetleniu monitu, włącz .plist dla iOS , a następnie kliknij plik do pobrania .
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.
- W konsoli Firebase otwórz swój projekt.
- Wybierz Config Remote Config z menu, aby wyświetlić deskę rozdzielczą zdalnej konfiguracji.
- 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.
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łaniuactivateWithCompletionHandler
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]; }); }]; } }];
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:
- Parametr w
fetch(long)
- Parametr w
FIRRemoteConfigSettings.MinimumFetchInterval
- 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: