Use a Configuração remota do Firebase para definir parâmetros no app e atualizar os respectivos valores na nuvem. Assim, você modifica a aparência e o comportamento do app sem precisar distribuir uma atualização. Este guia contém as etapas para começar a usar o recurso e alguns exemplos de código que estão disponíveis para clonagem ou download no repositório do GitHub firebase/quickstart-ios.
Etapa 1: adicionar a Configuração remota ao seu app
Instale o SDK do Firebase para plataformas da Apple.
Crie o objeto Singleton da Configuração remota, conforme mostrado no exemplo a seguir:
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;
Esse objeto é usado para armazenar valores de parâmetro padrão no app, buscar valores de parâmetros atualizados no back-end da Configuração remota e controlar quando eles são disponibilizados para o app.
Durante o desenvolvimento, recomendamos definir um intervalo de busca mínimo relativamente baixo. Para mais informações, consulte Limitação.
Etapa 2: definir valores de parâmetro padrão no app
Você pode definir os valores de parâmetro padrão no app no objeto da Configuração remota. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end da Configuração remota, e os valores padrão vão estar disponíveis se nenhum tiver sido definido no back-end.
Defina um conjunto de nomes de parâmetro e valores de parâmetro padrão usando um objeto
NSDictionary
ou um arquivo plist (links em inglês).Depois de configurar os valores de parâmetro do back-end da Configuração remota, é possível fazer o download de um arquivo
plist
gerado com todos os valores padrão e salvar esse arquivo no projeto do 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
Console do Firebase
Na guia Parâmetros, abra o Menu e selecione Fazer o download dos valores padrão.
Quando solicitado, ative a opção .plist para iOS, e clique em Fazer o download do arquivo.
Adicione esses valores ao objeto da Configuração remota usando
setDefaults:
. O exemplo a seguir define valores padrão no aplicativo de um arquivo plist:Swift
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
Objective-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
Etapa 3: receber valores de parâmetro para uso no app
Agora você pode receber valores de parâmetro do objeto da Configuração remota. Se mais tarde
você definir valores no back-end da Configuração remota, buscá-los e ativá-los,
eles vão estar disponíveis para o app. Caso contrário, receba os valores de
parâmetro no app usando
setDefaults:
.
Para receber esses valores, chame o método
configValueForKey:
fornecendo a chave de parâmetro como um argumento.
Etapa 4: definir os valores de parâmetro
Com o Console do Firebase ou as APIs de back-end da Configuração remota, crie valores padrão do back-end que substituem os valores no app conforme a lógica condicional ou a segmentação de usuário necessárias. Esta seção traz as etapas do Console do Firebase para criar esses valores.
- Abra seu projeto no Console do Firebase.
- Selecione Configuração remota no menu para explorar o painel do recurso.
- Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível definir um valor padrão (que, por fim, vai substituir o valor padrão no app) e valores condicionais. Saiba mais em Parâmetros e condições da Configuração remota.
Etapa 5: buscar e ativar valores
Para buscar os valores de parâmetro da Configuração remota, chame o
método
fetchWithCompletionHandler:
ou
fetchWithExpirationDuration:completionHandler:
. Todos os valores definidos no back-end são buscados e
armazenados em cache no objeto da Configuração remota.
Para buscar e ativar valores com uma chamada, use
fetchAndActivateWithCompletionHandler:
.
Este exemplo busca valores no back-end da Configuração remota (não valores em
cache) e chama activateWithCompletionHandler:
para disponibilizá-los para
o app:
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); } }];
Esses valores de parâmetro atualizados afetam o comportamento e a aparência do app. Por isso, ative-os sem prejudicar a experiência do usuário, como da próxima vez que ele abrir o app. Confira informações e exemplos em Estratégias de carregamento da Configuração remota.
Limitação
Se um aplicativo fizer muitas buscas em um curto período, as chamadas de busca serão limitadas, e o SDK retornará FIRRemoteConfigFetchStatusThrottled
. Antes da versão 6.3.0 do SDK, o
limite era de cinco solicitações de busca em um intervalo de 60 minutos.
As versões mais recentes têm limites mais flexíveis.
Durante o desenvolvimento de apps, convém atualizar o cache com muita frequência
(muitas vezes por hora) para permitir a iteração rápida à medida que você desenvolve e testa seu
app. Para possibilitar a iteração rápida em um projeto com vários desenvolvedores, você
pode adicionar temporariamente uma propriedade FIRRemoteConfigSettings
com
um intervalo mínimo de busca baixo (MinimumFetchInterval
) no seu app.
O intervalo de busca de produção padrão e recomendado da Configuração remota é de 12 horas. Portanto, a busca pelas configurações no back-end não vai acontecer mais de uma vez em 12 horas, e isso independe de quantas chamadas de busca forem realmente realizadas. O intervalo mínimo de busca é determinado especificamente na seguinte ordem:
- O parâmetro em
fetch(long)
- O parâmetro em
FIRRemoteConfigSettings.MinimumFetchInterval
- O valor padrão de 12 horas
Próximas etapas
Se ainda não tiver feito isso, confira os casos de uso da Configuração remota, bem como alguns dos conceitos principais e a documentação de estratégias avançadas, que incluem: