Firebase Remote Config'i kullanmaya başlayın


Uygulamanızda parametreleri tanımlamak ve değerlerini bulutta güncellemek için Firebase Remote Config'i kullanabilirsiniz. Böylece, uygulama güncellemesi dağıtmadan uygulamanızın görünümünü ve davranışını değiştirebilirsiniz. Bu kılavuz, başlangıç adımlarında size yol gösterir ve firebase/quickstart-ios GitHub deposundan klonlayabileceğiniz veya indirebileceğiniz bazı örnek kodlar sağlar.

1. Adım: Uygulamanıza Remote Config'i ekleyin

  1. Henüz yapmadıysanız Firebase'i Apple projenize ekleyin.

  2. Remote Config'de, uygulama örneklerinin kullanıcı özelliklerine ve kitlelere koşullu hedeflemesi için Google Analytics gereklidir. Projenizde Google Analytics'i etkinleştirdiğinizden emin olun.

  3. Aşağıdaki örnekte gösterildiği gibi tekil Remote Config nesnesini oluşturun:

    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;

Bu nesne, uygulama içi varsayılan parametre değerlerini depolamak, Remote Config arka ucundan güncellenmiş parametre değerlerini getirmek ve getirilen değerlerin uygulamanızda ne zaman kullanıma sunulacağını kontrol etmek için kullanılır.

Geliştirme sırasında, nispeten düşük bir minimum getirme aralığı belirlemeniz önerilir. Daha fazla bilgi için Kısıtlama bölümünü inceleyin.

2. Adım: Uygulama içi varsayılan parametre değerlerini ayarlayın

Uygulama içi varsayılan parametre değerlerini Remote Config nesnesinde ayarlayabilirsiniz. Böylece uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır. Böylece, arka uçta hiçbir parametre ayarlanmamışsa varsayılan değerler kullanılabilir.

  1. NSDictionary nesnesi veya plist dosyası kullanarak bir dizi parametre adını ve varsayılan parametre değerlerini tanımlayın.

    Remote Config arka uç parametre değerlerini zaten yapılandırdıysanız tüm varsayılan değerleri içeren oluşturulmuş bir plist dosyasını indirebilir ve Xcode projenize kaydedebilirsiniz.

    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
    

    Firebase konsolu

    1. Parametreler sekmesinde Menü'yü açın ve Varsayılan değerleri indir'i seçin.

    2. İstendiğinde iOS için.plist dosyasını etkinleştirin ve ardından Dosyayı indir'i tıklayın.

  2. Bu değerleri, setDefaults: kullanarak Remote Config nesnesine ekleyin. Aşağıdaki örnek, bir plist dosyasından uygulama içi varsayılan değerleri ayarlar:

    Swift

    remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")

    Objective-C

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

3. Adım: Uygulamanızda kullanılacak parametre değerlerini alın

Artık parametre değerlerini Remote Config nesnesinden alabilirsiniz. Daha sonra Remote Config arka ucunda değerler ayarlar, bunları getirir ve etkinleştirirseniz bu değerler uygulamanız tarafından kullanılabilir. Aksi takdirde, setDefaults: kullanılarak yapılandırılan uygulama içi parametre değerlerini alırsınız. Bu değerleri almak için parametre anahtarını bağımsız değişken olarak sağlayarak configValueForKey: yöntemini çağırın.

4. Adım: Parametre değerlerini ayarlayın

Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak, uygulama içi değerleri istediğiniz koşullu mantığa veya kullanıcı hedeflemeye göre geçersiz kılan yeni arka uç varsayılan değerleri oluşturabilirsiniz. Bu bölümde, bu değerleri oluşturmak için Firebase konsolunda uygulanması gereken adımlar açıklanmaktadır.

  1. Firebase konsolunda projenizi açın.
  2. Remote Config kontrol panelini görüntülemek için menüden Remote Config'i seçin.
  3. Uygulamanızda tanımladığınız parametrelerle aynı adlara sahip parametreleri tanımlayın. Her bir parametre için varsayılan değer belirleyebilir (bu değer, sonuçta uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler de belirleyebilirsiniz. Daha fazla bilgi edinmek için Remote Config Parametreleri ve Koşulları bölümüne bakın.

5. Adım: Değerleri getirin ve etkinleştirin

Parametre değerlerini Remote Config'den getirmek için fetchWithCompletionHandler: veya fetchWithExpirationDuration:completionHandler: yöntemini çağırın. Arka uçta ayarladığınız değerler Remote Config nesnesinde getirilir ve önbelleğe alınır.

Değerleri bir çağrıda getirmek ve etkinleştirmek istediğiniz durumlar için fetchAndActivateWithCompletionHandler: öğesini kullanın.

Bu örnek, Remote Config arka ucundan değerler (önbelleğe alınan değerler değil) ve uygulamanın kullanabilmesi için activateWithCompletionHandler: çağrısı yapar:

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);
    }
}];

Bu güncellenen parametre değerleri uygulamanızın davranışını ve görünümünü etkilediğinden, getirilen değerleri kullanıcılarınız için sorunsuz bir deneyim sağlayacak bir zamanda (kullanıcının uygulamanızı bir sonraki açışı gibi) etkinleştirmeniz gerekir. Daha fazla bilgi ve örnek için Remote Config yükleme stratejileri bölümüne bakın.

6. Adım: Güncellemeleri gerçek zamanlı olarak dinleyin

Parametre değerlerini getirdikten sonra, Remote Config arka ucundan gelen güncellemeleri dinlemek için gerçek zamanlı Remote Config'i kullanabilirsiniz. Gerçek zamanlı Remote Config, güncellemeler mevcut olduğunda bağlı cihazlara sinyal gönderir ve yeni bir Remote Config sürümü yayınladığınızda değişiklikleri otomatik olarak getirir.

Gerçek zamanlı güncellemeler, 10.7.0 ve üzeri Apple platformları için Firebase SDK'sı tarafından desteklenir.

  1. Uygulamanızda güncellemeleri dinlemeye başlamak için addOnConfigUpdateListener numaralı telefonu arayın ve yeni veya güncellenmiş parametre değerlerini otomatik olarak getirin. Aşağıdaki örnek, güncellemeleri dinler ve activateWithCompletionHandler çağrıldığında, güncellenmiş bir karşılama mesajı göstermek için yeni getirilen değerleri kullanır.

    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];
          });
        }];
      }
    }];
    
  2. Remote Config'inizin yeni bir sürümünü yayınladığınızda, uygulamanızı çalıştıran ve değişiklikleri dinleyen cihazlar tamamlama işleyicisini çağırır.

Kısıtlama

Bir uygulama kısa bir süre içinde çok fazla kez getirirse getirme çağrıları kısıtlanır ve SDK FIRRemoteConfigFetchStatusThrottled değerini döndürür. SDK 6.3.0 sürümünden önce sınır, 60 dakikalık bir pencerede 5 getirme isteğiydi (yeni sürümlerde daha geniş kapsamlı sınırlar vardır).

Uygulamanızı geliştirirken ve test ederken hızlı iterasyon yapabilmeniz için önbelleği çok sık (saatte birçok kez) yenilemek için uygulama geliştirme sırasında daha sık getirme yapmak isteyebilirsiniz. Yapılandırma sunucuda güncellendiğinde gerçek zamanlı Remote Config güncellemeleri,önbelleği otomatik olarak atlar. Çok sayıda geliştiricinin olduğu projelerde hızlı iterasyon için uygulamanıza geçici olarak düşük minimum getirme aralığına (MinimumFetchInterval) sahip FIRRemoteConfigSettings özelliği ekleyebilirsiniz.

Remote Config için varsayılan ve önerilen üretim getirme aralığı 12 saattir. Bu da yapılandırmaların, gerçekte kaç tane getirme çağrısı yapıldığından bağımsız olarak, 12 saatlik bir süre içinde arka uçtan birden fazla kez getirilmeyeceği anlamına gelir. Özellikle, minimum getirme aralığı aşağıdaki sırayla belirlenir:

  1. fetch(long) içindeki parametre
  2. FIRRemoteConfigSettings.MinimumFetchInterval içindeki parametre
  3. 12 saat olan varsayılan değer

Sonraki adımlar

Henüz yapmadıysanız Remote Config kullanım alanlarını inceleyin ve aşağıdakiler de dahil olmak üzere bazı temel kavramlara ve gelişmiş stratejiler belgelerine göz atın: