Firebase Remote Config'i kullanmaya başlayın


Uygulamanızda parametreler tanımlamak ve bu parametrelerin değerlerini bulutta güncellemek için Firebase Remote Config kullanabilirsiniz. Böylece, 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ılabileceğini kontrol etmek için kullanılır. Daha fazla bilgi edinmek için Remote Config yükleme stratejileri başlıklı makaleyi inceleyin.

Bu kılavuz, başlangıç adımlarını açıklar ve bazı örnek kodlar sunar. Bu kodların tümü, firebase/quickstart-unity GitHub deposundan klonlanabilir veya indirilebilir.

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

Remote Config kullanabilmek için:

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

    • Unity projeniz zaten Firebase kullanıyorsa Firebase için kaydedilmiş ve yapılandırılmış demektir.

    • Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.

  • Firebase Unity SDK'sını (özellikle FirebaseRemoteConfig.unitypackage) Unity projenize ekleyin.

Firebase'i Unity projenize eklemenin hem Firebase konsolunda hem de açık Unity projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip Unity projenize taşırsınız).

2. 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 uygulama içi varsayılan parametre değerlerini Remote Config nesnesinde ayarlayabilirsiniz.

Bunu yapmak için bir dize sözlüğü oluşturun ve eklemek istediğiniz varsayılanları temsil eden anahtar/değer çiftleriyle doldurun. Remote Config arka uç parametre değerlerini daha önce yapılandırdıysanız bu anahtar/değer çiftlerini içeren bir dosyayı indirebilir ve dize sözlüğünüzü oluşturmak için kullanabilirsiniz. Daha fazla bilgi için Şablon varsayılanlarını Remote Config indirme başlıklı makaleyi inceleyin.

(Dize olmayan özellikler, SetDefaultsAsync() çağrıldığında özelliğin türüne dönüştürülür).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

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

Artık Remote Config nesnesinden parametre değerleri alabilirsiniz. Remote Config arka ucunda değerler ayarlayıp bunları getirip etkinleştirirseniz bu değerler uygulamanızda kullanılabilir. Aksi takdirde, SetDefaultsAsync() kullanılarak yapılandırılan uygulama içi parametre değerlerini alırsınız.

Bu değerleri almak için GetValue() işlevini kullanın ve parametre anahtarını bağımsız değişken olarak sağlayın. Bu, değeri çeşitli temel türlere dönüştürmek için özelliklere sahip bir ConfigValue döndürür.

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

  1. Firebase konsolunda projenizi açın.
  2. Remote Config kontrol panelini görüntülemek için menüden Remote Config simgesini seçin.
  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 ayarlayabilirsiniz. Daha fazla bilgi edinmek için Remote Config parametreleri ve koşulları başlıklı makaleyi inceleyin.

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

Parametre değerlerini Remote Config arka ucundan getirmek için FetchAsync() yöntemini çağırın. Arka uçta ayarladığınız tüm değerler getirilip Remote Config nesnesinde önbelleğe alınır.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

Yukarıdaki kodda FetchComplete, imzası ContinueWithOnMainThread()'ün aşırı yüklemelerinden birinin parametreleriyle eşleşen bir yöntemdir.

Aşağıdaki örnek kodda, FetchComplete yöntemine önceki görev (fetchTask) iletilir. Bu, FetchComplete yönteminin görevin tamamlanıp tamamlanmadığını belirlemesini sağlar. Kod, bitişin de başarılı olup olmadığını belirlemek için Info.LastFetchStatus kullanır. Bu durumda, Remote Config parametre değerleri ActivateAsync() kullanılarak etkinleştirilir.

private void FetchComplete(Task fetchTask) {
  if (!fetchTask.IsCompleted) {
    Debug.LogError("Retrieval hasn't finished.");
    return;
  }

  var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
  var info = remoteConfig.Info;
  if(info.LastFetchStatus != LastFetchStatus.Success) {
    Debug.LogError($"{nameof(FetchComplete)} was unsuccessful\n{nameof(info.LastFetchStatus)}: {info.LastFetchStatus}");
    return;
  }

  // Fetch successful. Parameter values must be activated to use.
  remoteConfig.ActivateAsync()
    .ContinueWithOnMainThread(
      task => {
        Debug.Log($"Remote data loaded and ready for use. Last fetch time {info.FetchTime}.");
    });
}

FetchAsync() kullanılarak getirilen değerler, getirme işlemi tamamlandığında yerel olarak önbelleğe alınır ancak ActivateAsync() çağrılana kadar kullanıma sunulmaz. Bu sayede, yeni değerlerin hesaplama sırasında veya sorunlara ya da tuhaf davranışlara neden olabilecek başka zamanlarda uygulanmadığından emin olabilirsiniz.

6. 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'yı kullanabilirsiniz. Güncellemeler kullanıma sunulduğunda bağlı cihazlara Remote Configanlık sinyaller gönderir ve yeni bir sürüm yayınladıktan sonra değişiklikleri otomatik olarak getirir.Remote Config

Anlık güncellemeler, Android ve Apple platformları için Firebase Unity 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 bir OnConfigUpdateListener ekleyin. Ardından, güncelleme etkinliklerini işlemek için bir ConfigUpdateListenerEventHandler oluşturun. Aşağıdaki örnekte, güncellemeler dinlenir ve yeni getirilen değerler, güncellenmiş bir karşılama mesajı göstermek için kullanılır.
// Invoke the listener.
void Start()
{
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
    += ConfigUpdateListenerEventHandler;
}

// Handle real-time Remote Config events.
void ConfigUpdateListenerEventHandler(
   object sender, Firebase.RemoteConfig.ConfigUpdateEventArgs args) {
  if (args.Error != Firebase.RemoteConfig.RemoteConfigError.None) {
    Debug.Log(String.Format("Error occurred while listening: {0}", args.Error));
    return;
  }

  Debug.Log("Updated keys: " + string.Join(", ", args.UpdatedKeys));
  // Activate all fetched values and then display a welcome message.
  remoteConfig.ActivateAsync().ContinueWithOnMainThread(
    task => {
        DisplayWelcomeMessage();
    });
}

// Stop the listener.
void OnDestroy() {
    Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.OnConfigUpdateListener
      -= ConfigUpdateListenerEventHandler;
}

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 tamamlanma işleyicisini çağırır.

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 kavramlar ile gelişmiş stratejilerle ilgili dokümanlara göz atın: