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.

Remote Config kitaplığı, uygulama içi varsayılan parametre değerlerini depolamak, güncellenen parametre değerlerini Remote Config arka ucundan almak ve alınan değerlerin uygulamanıza ne zaman sunulacağını 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ılavuzda, başlangıç adımlarını adım adım uygulayabilir ve bazı örnek kodları inceleyebilirsiniz. Bu örnek kodların tümü firebase/quickstart-unity GitHub deposundan klonlanabilir veya indirilebilir.

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

Kullanmadan önce Remote Config, Yapmanız gerekenler:

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

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

    • Unity projeniz yoksa şunu indirebilirsiniz: örnek uygulama.

  • Firebase Unity SDK'sını (özellikle FirebaseRemoteConfig.unitypackage) şuraya ekleyin: derleyip toparlarsınız.

Firebase'i Unity projenize eklemenin hem Firebase konsolunda ve açık Unity projenizde (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip bu dosyalara bunları Unity projenize ekleyin).

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.

Bunu yapmak için bir dize sözlüğü oluşturun ve bu sözlüğü anahtar/değer çiftleriyle doldurun temsil eder. Remote Config arka uç parametre değerlerini daha önce yapılandırdıysanız bu anahtar/değer çiftlerini içeren bir dosya indirebilir ve dize sözlüğünüzü oluşturmak için kullanabilirsiniz. Daha fazla bilgi için bkz. İndir Remote Config şablon varsayılanları.

(Dize olmayan özellikler, SetDefaultsAsync() çağrıldığında mülkün 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 kullanılacak parametre değerlerini alın

Artık Remote Config nesnesinden parametre değerleri alabilirsiniz. Remote Config arka ucunda değerler ayarladıysanız, bunları getirdiyseniz ve etkinleştirdiyseniz bu değerler uygulamanız tarafından 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 parametre anahtarını bağımsız değişken olarak sağlayarak GetValue() işlevini kullanın. Bu, ConfigValue, değeri çeşitli temel türlerine dönüştüren özelliklere sahip olan basit bir reklam öğesi oluşturun.

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 (sonunda uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler ayarlayabilirsiniz. Daha fazla bilgi edinmek için bkz. Remote Config parametre ve koşulu.

5. Adım: Değerleri getirin ve etkinleştirin (gerektiğinde)

Remote Config arka ucundan parametre değerlerini getirmek için şunu çağırın: FetchAsync() yöntemidir. Arka uçta ayarladığınız tüm değerler getirilir ve 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, parametrelerinden birinin aşırı yüklemeler / ContinueWithOnMainThread().

Aşağıdaki örnek kodda, FetchComplete yöntemine önceki görev (fetchTask) iletilir. Bu, FetchComplete'ün görevin tamamlanıp tamamlanmadığını belirlemesine olanak tanır. Kod, Info.LastFetchStatus bitişin de başarılı olup olmadığını belirlemek için de kullanılabilir. 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}.");
    });
}

Şunlar kullanılarak getirilen değerler: FetchAsync() getirme işlemi tamamlandığında yerel olarak önbelleğe alınır, ancak ActivateAsync() çağrılır. Bu, yeni değerlerin uygulanmamasını sağlar. bazen de problemlere ya da tuhaf şeylere yol açabilecek gösterir.

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. Güncellemeler mevcut olduğunda bağlı cihazlara Remote Config anlık sinyal gönderir ve yeni bir Remote Config sürümü yayınladıktan sonra değişiklikleri otomatik olarak getirir.

Gerçek zamanlı güncellemeler, şunun için Firebase Unity SDK'sı v11.0.0+ ve sonraki sürümler tarafından desteklenir: Android ve Apple platformları.

  1. Uygulamanızda güncellemeleri dinlemeye başlamak ve yeni veya güncellenmiş parametre değerlerini otomatik olarak almak için bir OnConfigUpdateListener ekleyin. Ardından, Güncelleme etkinliklerini işlemek için ConfigUpdateListenerEventHandler. Aşağıdakiler örneği, güncellemeleri izler ve yeni getirilen değerleri, güncellenmiş karşılama mesajı girin.
// 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 tamamlama işleyicisini çağırır.

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: