Firebase Remote Config'i kullanmaya başlayın


Uygulamanızda parametreleri tanımlamak için Firebase Remote Config kullanabilir ve değerlerini bulutta güncelleyerek görünümü ve uygulamanızın davranışını gösteren bir kontrol listesidir. Bu kılavuzda, başlangıç adımlarını adım adım uygulayabilir ve bazı örnek kodları inceleyebilirsiniz. Bu örnek kodların tümü firebase/quickstart-ios GitHub deposundan klonlanabilir veya indirilebilir.

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

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

  2. Remote Config için Google Analytics, uygulama örneklerinin kullanıcı özelliklerine ve kitlelere koşullu olarak hedeflenmesi amacıyla gereklidir. Projenizde Google Analytics'yi 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, güncellenmiş parametre değerlerini Remote Config arka ucundan almak ve getirilen değerlerin uygulamanıza ne zaman sunulacağını kontrol etmek için kullanılır.

Geliştirme sırasında, minimum getirme aralığını nispeten düşük bir değere ayarlamak önerilir. Daha fazla bilgi için Düşük hızlandırma bölümüne bakın.

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

Uygulama içi varsayılan parametre değerlerini Remote Config ile bağlantı kurmadan önce amaçlandığı gibi davranmasını sağlamak için Remote Config arka uç sağlar ve böylece hiçbir arka uç olmadığında varsayılan değerler kullanılabilir arka uçta ayarlanır.

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

    Remote Config arka uç parametre değerlerini daha önce yapılandırdıysanız tüm varsayılan değerleri içeren oluşturulmuş bir plist dosyasını indirip 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 sekmesinden, 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. Bu değerleri, şunu kullanarak Remote Config nesnesine ekleyin: setDefaults: Aşağıdaki örnekte, bir plist dosyasından uygulama içi varsayılan değerler ayarlanmaktadır:

    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ğerleri ayarlayın, bunları getirin ve ardından etkinleştirin uygulamanızda kullanılabiliyor. Aksi takdirde, uygulama içi parametreyi değerleri setDefaults: Bu değerleri almak için configValueForKey: yöntemini kullanarak parametre anahtarını bağımsız değişken olarak sağlar.

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

Firebase konsolunu veya Remote Config arka uç API'lerini kullanarak, istediğiniz koşullu mantığa veya kullanıcı hedeflemesine göre uygulama içi değerleri 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 konsol adımlarında size yol gösterilir.

  1. Firebase konsolunda projenizi açın.
  2. Remote Config öğesini görüntülemek için menüden Remote Config öğesini seçin. kontrol paneli
  3. Uygulamanızda tanımladığınız parametrelerle aynı ada sahip parametreler tanımlayın. Her parametre için bir varsayılan değer (bu değer, uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler de ayarlayabilirsiniz. Daha fazla bilgi edinmek için bkz. Remote Config Parametreler ve Koşullar

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

Remote Config öğesinden parametre değerlerini getirmek için şunu çağırın: fetchWithCompletionHandler: veya fetchWithExpirationDuration:completionHandler: yöntemidir. Arka uçta ayarladığınız tüm değerler getirilir ve Remote Config nesnesinde önbelleğe alındı.

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

Bu örnekte, Remote Config arka ucundan değerler getirilir (önbelleğe alınmış değerler değil) ve uygulamanın kullanabilmesi için activateWithCompletionHandler: çağrılır:

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

Güncellenen bu parametre değerleri uygulamanızın davranışını ve görünümünü etkilediği için alınan değerleri, kullanıcınızın sorunsuz bir deneyim yaşamasını sağlayacak bir zamanda (ör. kullanıcı uygulamanızı bir sonraki açışında) 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 aldıktan sonra, Remote Config arka ucundan güncelleme dinlemek için gerçek zamanlı Remote Config kullanabilirsiniz. Gerçek zamanlı Güncelleme olduğunda bağlı cihazlara Remote Config sinyal geliyor ve yeni bir Remote Config yayınlamanızın ardından değişiklikleri otomatik olarak getirir sürümünü değil.

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

  1. Güncellemeleri dinlemeye başlamak için uygulamanızda addOnConfigUpdateListener numaralı telefonu arayın ve yeni veya güncellenen tüm parametre değerlerini otomatik olarak getirir. Aşağıdaki örnek, güncellemeleri dinler ve activateWithCompletionHandler çağrıldığında güncellenmiş bir karşılama mesajı 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 uygulamanızın 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 süre içinde çok fazla getirme işlemi yaparsa getirme çağrıları sınırlandırılır ve SDK FIRRemoteConfigFetchStatusThrottled döndürür. SDK 6.3.0 sürümünden önce, sınır, 60 dakikada 5 getirme isteğiydi pencere (yeni sürümlerde daha geniş kapsamlı izin sınırları vardır).

Uygulamanızı geliştirip test ederken hızlı bir şekilde iterasyon yapmanıza olanak tanımak için uygulama geliştirme sırasında önbelleği çok sık (saatte birkaç kez) yenilemek üzere daha sık getirmeyi tercih edebilirsiniz. Anlık Remote Config güncellemeleri, yapılandırma sunucu üzerinde güncellendiğinde önbelleği otomatik olarak atlar. Hızlı iterasyona uyum sağlamak için birden fazla geliştiricinin bulunduğu bir projede geçici olarak bir Minimum getirme aralığına sahip FIRRemoteConfigSettings mülk (MinimumFetchInterval) inceleyebilirsiniz.

Remote Config için varsayılan ve önerilen üretim getirme aralığı 12 saat. Bu, yapılandırmaların 12 saat içinde arka uçtan bir kereden fazla alınmadığı anlamına gelir sayısını belirler. Özellikle, minimum getirme aralığı aşağıdaki sırayla belirlenir:

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

Sonraki adımlar

Henüz yapmadıysanız Remote Configkullanım alanlarını inceleyin ve aşağıdakiler gibi temel kavramlar ve gelişmiş strateji dokümanlarından bazılarına göz atın: