C++'ta Remote Config'i kullanmaya başlama

Platform seçin: iOS+ Android Web Flutter Unity C++


Uygulamanızdaki parametreleri tanımlamak ve değerlerini bulutta güncellemek için Firebase Remote Config kullanabilirsiniz. Bu sayede, uygulama güncellemesi dağıtmadan uygulamanızın görünümünü ve davranışını değiştirebilirsiniz.

Remote Config kitaplığı, 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ılabilir olacağını kontrol etmek için kullanılır. Daha fazla bilgi edinmek için Remote Config yükleme stratejileri başlıklı makaleyi inceleyin.

1. adım: Firebase'i uygulamanıza ekleyin

Remote Config özelliğini kullanabilmek için:

  • C++ projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.

    C++ projeniz Firebase'i kullanıyorsa Firebase için zaten kaydedilmiş ve yapılandırılmıştır.

  • C++ projenize Firebase C++ SDK'sını ekleyin.

Firebase'i C++ projenize eklemek için hem Firebase konsolda hem de açık C++ projenizde görevler yapmanız gerektiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip C++ projenize taşırsınız).

2. adım: Uygulamanıza Remote Config ekleyin

Android

Firebase'i uygulamanıza ekledikten sonra:

  1. JNI ortamını ve etkinliği ileterek bir Firebase uygulaması oluşturun:

    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);

  2. Remote Config kitaplığını gösterildiği gibi başlatın:

    ::firebase::remote_config::Initialize(app);

iOS+

Firebase'i uygulamanıza ekledikten sonra:

  1. Firebase uygulaması oluşturun:

    app = ::firebase::App::Create(::firebase::AppOptions());

  2. Remote Config kitaplığını gösterildiği gibi başlatın:

    ::firebase::remote_config::Initialize(app);

3. adım: Uygulama içi varsayılan parametre değerlerini ayarlayın

Uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranması ve arka uçta ayarlanmamışsa varsayılan değerlerin kullanılabilmesi için Remote Config nesnesinde uygulama içi varsayılan parametre değerleri ayarlayabilirsiniz.

  1. Dizi boyutuna sahip bir ConfigKeyValue* nesnesi veya ConfigKeyValueVariant* nesnesi kullanarak bir dizi parametre adı ve varsayılan parametre değeri tanımlayın.

    Remote Config arka uç parametre değerlerini zaten yapılandırdıysanız bu anahtar/değer çiftlerini içeren bir dosyayı indirebilir ve map nesnenizi oluşturmak için kullanabilirsiniz. Daha fazla bilgi için Şablon Remote Config varsayılanlarını indirme başlıklı makaleyi inceleyin.

  2. SetDefaults() kullanarak bu değerleri Remote Config nesnesine ekleyin.

4. adım: Uygulamanızda kullanmak için parametre değerleri edinin

Artık parametre değerlerini Remote Config nesnesinden alabilirsiniz. Remote Config arka ucunda değerler ayarlayıp bunları alıp etkinleştirirseniz bu değerler uygulamanızda 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 uygulamanızın beklediği veri türüyle eşleşen aşağıdaki yöntemlerden herhangi birini çağırın:

5. adım: Parametre değerlerini ayarlayın

  1. Firebase konsolunda DevOps & Engagement > Remote Config'e gidin.

  2. Uygulamanızda tanımladığınız parametrelerle aynı ada sahip parametreler tanımlayın. Her parametre için varsayılan bir değer (bu değer, uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler ayarlayabilirsiniz. Daha fazla bilgi edinmek için Remote Config parametreleri ve koşulları başlıklı makaleyi inceleyin.

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

  1. Parametre değerlerini Remote Config arka ucundan getirmek için Fetch() yöntemini çağırın. Arka uçta ayarladığınız tüm değerler getirilip Remote Config nesnesinde önbelleğe alınır.
  2. Getirilen parametre değerlerini uygulamanızda kullanıma sunmak için ActivateFetched()

7. adım: Güncellemeleri anlık olarak dinleyin

Parametre değerlerini getirdikten sonra, Remote Config arka ucundan gelen güncellemeleri dinlemek için gerçek zamanlı Remote Config kullanabilirsiniz. Güncellemeler kullanıma sunulduğunda bağlı cihazlara Remote Config anlık sinyaller gönderir ve yeni bir Remote Config sürümü yayınladığınızda değişiklikleri otomatik olarak getirir.

Anlık güncellemeler, Android ve Apple platformları için Firebase C++ SDK v11.0.0 ve sonraki sürümlerinde desteklenir.

  1. Uygulamanızda, güncellemeleri dinlemeye başlamak ve yeni veya güncellenmiş parametre değerlerini otomatik olarak getirmek için AddOnConfigUpdateListener işlevini çağırın. Aşağıdaki örnek, güncellemeleri dinler ve Activate çağrıldığında güncellenmiş bir karşılama mesajı göstermek için yeni getirilen değerleri kullanır.
remote_config->AddOnConfigUpdateListener(
    [](firebase::remote_config::ConfigUpdate&& config_update,
       firebase::remote_config::RemoteConfigError remote_config_error) {
      if (remote_config_error != firebase::remote_config::kRemoteConfigErrorNone) {
        printf("Error listening for config updates: %d", remote_config_error);
      }
      // Search the `updated_keys` set for the key "welcome_message."
      // `updated_keys` represents the keys that have changed since the last
      // fetch.
      if (std::find(config_update.updated_keys.begin(),
                    config_update.updated_keys.end(),
                    "welcome_message") != config_update.updated_keys.end()) {
        remote_config->Activate().OnCompletion(
            [&](const firebase::Future& completed_future,
               void* user_data) {
              // The key "welcome_message" was found within `updated_keys` and
              // can be activated.
              if (completed_future.error() == 0) {
                DisplayWelcomeMessage();
              } else {
                printf("Error activating config: %d", completed_future.error());
              }
            },
            nullptr);
      }
    });

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, yapılandırma güncelleme dinleyicisini çağırır.