Ir para o console

Primeiros passos com o Configuração remota do Firebase no iOS

Use o Configuração remota do Firebase para definir parâmetros no seu app e atualizar os valores na nuvem e, com isso, modificar a aparência e o comportamento do app sem a necessidade de distribuir uma atualização.

Veja neste guia os primeiros passos e códigos de amostra, que estão disponíveis para clonagem ou download no repositório GitHub firebase/quickstart-ios.

Adicione o Configuração remota ao seu app

  1. Instale o SDK do Firebase para iOS.

  2. Crie o objeto singleton do 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âmetros padrão no app, buscar valores de parâmetros atualizados do back-end do Configuração remota e controlar quando os valores buscados são disponibilizados ao app.

Durante o desenvolvimento, recomendamos definir um intervalo de busca mínimo relativamente baixo. Para mais informações, consulte Limitação.

Definir valores de parâmetros padrão no app

É possível definir os valores de parâmetros padrão no app por meio do objeto do Configuração remota. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end do Configuração remota e os valores padrão estarão disponíveis, caso nenhum tenha sido definido no back-end.

  1. Defina um conjunto de nomes e valores padrão de parâmetro usando um objeto NSDictionary ou um arquivo plist (links em inglês).
  2. Adicione esses valores ao objeto do Configuração remota usando setDefaults:. No exemplo a seguir, são definidos valores padrão no aplicativo de um arquivo plist:

Swift

remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

Objective-C

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

Receber valores de parâmetro para uso no app

É possível receber valores de parâmetros do objeto da Configuração remota. Se posteriormente você definir valores no back-end do Configuração remota, buscá-los e ativá-los, eles estarão disponíveis para seu app. Caso contrário, você receberá os valores no app configurados usando setDefaults:. Para receber esses valores, chame o método configValueForKey: fornecendo a chave de parâmetro como um argumento.

Defina os valores de parâmetro

Por meio do Console do Firebase ou da API REST do Configuração remota, é possível criar novos valores padrão do back-end que substituem os valores no app de acordo com a lógica condicional ou a segmentação por usuário desejadas. Veja nesta seção as etapas do Console do Firebase para criar esses valores.

  1. Abra seu projeto no Console do Firebase.
  2. Selecione Configuração remota no menu para ver o painel do recurso.
  3. Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível definir um valor padrão (que possivelmente substituirá o valor padrão no app) e também valores condicionais. Para saber mais, consulte Parâmetros e condições do Configuração remota.

Buscar e ativar valores

  1. Para buscar valores de parâmetro do Configuração remota, chame o método fetchWithCompletionHandler: ou fetchWithExpirationDuration:completionHandler:. Todos os valores definidos no back-end são obtidos e armazenados em cache no objeto Configuração remota.
  2. Para disponibilizar valores de parâmetro buscados ao seu app, chame o método activateFetched.

Quando quiser buscar e ativar valores com uma chamada, use fetchAndActivateWithCompletionHandler:.

Este exemplo busca valores do back-end do Configuração remota (não valores em cache) e chama activateWithCompletionHandler:para disponibilizá-los ao aplicativo:

Swift

// TimeInterval is set to expirationDuration here, indicating the next fetch request will use
// data fetched from the Remote Config service, rather than cached parameter values, if cached
// parameter values are more than expirationDuration seconds old. See Best Practices in the
// README for more information.
remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
  if status == .success {
    print("Config fetched!")
    self.remoteConfig.activate(completionHandler: { (error) in
      // ...
    })
  } else {
    print("Config not fetched")
    print("Error: \(error?.localizedDescription ?? "No error available.")")
  }
  self.displayWelcome()
}

Objective-C

// TimeInterval is set to expirationDuration here, indicating the next fetch request will use
// data fetched from the Remote Config service, rather than cached parameter values, if cached
// parameter values are more than expirationDuration seconds old. See Best Practices in the
// README for more information.
[self.remoteConfig fetchWithExpirationDuration:expirationDuration completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
    if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
      [self.remoteConfig activateWithCompletionHandler:^(NSError * _Nullable error) {
        // ...
      }];
    } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
    }
    [self displayWelcome];
}];

Como esses valores de parâmetro atualizados afetam o comportamento e a aparência do app, ative-os quando isso não prejudicar a experiência do usuário. Por exemplo, na próxima vez em que o usuário abrir o app. Consulte Estratégias de carregamento do Configuração remota para mais informações e exemplos.

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 5 solicitações de busca em um intervalo de 60 minutos. As versões mais recentes têm limites mais permissivos.

Durante o desenvolvimento do app, 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 aplicativo.

O intervalo de busca de produção padrão e recomendado para o Configuração remota é de 12 horas, o que significa que a busca pelas configurações no back-end não acontecerá mais de uma vez em um período de 12 horas, independentemente de quantas chamadas de busca forem realmente realizadas. O intervalo mínimo de busca é determinado especificamente na seguinte ordem:

  1. O parâmetro em fetch(long)
  2. O parâmetro em FIRRemoteConfigSettings.MinimumFetchInterval
  3. O valor padrão de 12 horas

Próximas etapas

Se ainda não tiver feito isso, veja os casos de uso do Configuração remota e analise alguns dos principais conceitos e documentação de estratégias avançadas, incluindo: