Firebase Remote Config'i kullanmaya başlayın


Firebase Remote Config'i kullanarak uygulamanızda parametreleri tanımlayabilir ve bunların değerlerini bulutta güncelleyebilirsiniz. Bu sayede 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 sizi yönlendirir ve firebase/quickstart-ios GitHub deposundan klonlamak veya indirmek için kullanabileceğiniz bir örnek kod sunar.

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 olarak hedeflenmesi için Google Analytics gereklidir. Projenizde Google Analytics'i etkinleştirdiğinizden emin olun.

  3. Aşağıdaki örnekte gösterildiği gibi singleton 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ığı ayarlamanız önerilir. Daha fazla bilgi için Hızlandırma bölümüne bakın.

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

Remote Config nesnesinde uygulama içi varsayılan parametre değerleri ayarlayabilirsiniz. Böylece, uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır ve arka uçta hiçbiri ayarlanmazsa varsayılan değerler kullanılabilir.

  1. NSDictionary nesnesi veya plist dosyası kullanarak bir dizi parametre adı ve varsayılan parametre değerleri 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 bunu 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'i etkinleştirin, ardından Dosyayı indir'i tıklayın.

  2. setDefaults: kullanarak bu değerleri Remote Config nesnesine ekleyin. Aşağıdaki örnek, uygulama içi varsayılan değerleri bir plist dosyasından 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 Remote Config nesnesinden parametre değerleri 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ı hedeflemesine göre geçersiz kılan yeni arka uç varsayılan değerleri oluşturabilirsiniz. Bu bölümde, bu değerleri oluşturma ile ilgili Firebase konsolu 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. Parametreleri, uygulamanızda tanımladığınız parametrelerle aynı adlara sahip olarak tanımlayın. Her parametre için bir varsayılan değer ayarlayabilir (bu değer ileride uygulama içi varsayılan değeri geçersiz kılacaktır) ve koşullu değerler de belirleyebilirsiniz. Daha fazla bilgi edinmek için Remote Config Parametreleri ve Koşulları bölümünü inceleyin.

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 alınıp Remote Config nesnesinde önbelleğe alınır.

Değerleri tek bir çağrıda getirmek ve etkinleştirmek istediğiniz durumlarda fetchAndActivateWithCompletionHandler: işlevini kullanın.

Bu örnek, Remote Config arka ucundan (önbelleğe alınmış değerler değil) değerleri getirir ve uygulamada kullanılabilir hale getirmek 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ının uygulamanızı bir sonraki açışı gibi sorunsuz bir deneyim sağlayacak bir zamanda etkinleştirmeniz gerekir. Daha fazla bilgi ve örnek için Remote Config yükleme stratejilerine 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 hazır olduğunda bağlı cihazlara sinyal gönderir ve yeni bir Remote Config sürümü yayınlamanızın ardından değişiklikleri otomatik olarak getirir.

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

  1. Uygulamanızda, güncellemeleri dinlemeye başlamak ve yeni veya güncellenen parametre değerlerini otomatik olarak getirmek için addOnConfigUpdateListener komutunu çağırın. Aşağıdaki örnekte güncellemeleri dinler ve activateWithCompletionHandler çağrıldığında, güncellenmiş bir karşılama mesajını görüntülemek 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şleyiciyi çağırır.

Kısıtlama

Bir uygulama kısa bir süre içinde çok fazla kez getirme yaparsa getirme çağrıları kısıtlanır ve SDK, FIRRemoteConfigFetchStatusThrottled değerini döndürür. SDK'nın 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 daha fazladır).

Uygulama geliştirme sırasında, uygulamanızı geliştirip test ederken hızlı bir şekilde yineleme yapabilmenizi sağlamak için önbelleği çok sık (saatte birçok kez) yenilemek 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 bulunduğu bir projede hızlı iterasyona uymak için uygulamanıza geçici olarak minimum getirme aralığı (MinimumFetchInterval) düşük olan bir FIRRemoteConfigSettings mülkü ekleyebilirsiniz.

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

  1. fetch(long) hücresindeki parametre
  2. FIRRemoteConfigSettings.MinimumFetchInterval hücresindeki parametre
  3. Varsayılan değer olan 12 saat

Sonraki adımlar

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