Catch up on everthing we announced at this year's Firebase Summit. Learn more

Primeiros passos com o Configuração remota do Firebase

Use o Configuração remota do Firebase para definir parâmetros no app e atualizar os valores na nuvem. Dessa forma, é possível modificar a aparência e o comportamento do seu app sem distribuir uma atualização dele. Veja neste guia os primeiros passos e códigos de amostra, que estão disponíveis para clonagem ou download no repositório do GitHub firebase/quickstart-ios.

Adicionar o Configuração remota ao seu app

  1. Instale o SDK do Firebase para plataformas da Apple.

  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 da 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âmetro padrão no app com o 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 de parâmetros padrão usando um objeto NSDictionary ou um arquivo plist (links em inglês).
  2. Adicione esses valores ao objeto do 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"];

Receber valores de parâmetros para uso no app

É possível receber valores de parâmetro do objeto do 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.

Definir os valores de parâmetro

Com o Console do Firebase ou a API de back-end 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 determinar um valor padrão (que possivelmente substituirá o valor padrão no app), além de valores condicionais. Para saber mais, consulte Parâmetros e condições de Configuração remota.

Buscar e ativar valores

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 do Configuração remota.

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

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) {
        // ...
      }];
    } 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 ele abrir o app. Consulte Estratégias de carregamento da 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 cinco 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: