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
Jeśli jeszcze nie masz tego za sobą, dodaj Firebase do swojego projektu Apple.
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.
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.
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
W sekcji Parametry otwórz Menu i kliknij Pobierz wartości domyślne.
Gdy pojawi się odpowiedni komunikat, włącz .plist na iOS, a następnie kliknij Pobierz plik.
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.
- Otwórz projekt w konsoli Firebase.
- Wybierz Remote Config z menu, aby wyświetlić Remote Config panelu.
- 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.
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 kiedyactivateWithCompletionHandler
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]; }); }]; } }];
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:
- Parametr w polu
fetch(long)
- Parametr w polu
FIRRemoteConfigSettings.MinimumFetchInterval
- 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: