Firebase Remote Config'i kullanmaya başlayın


Uygulamanızda parametreleri tanımlamak için Firebase Remote Config'i 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 için kullanılır. Remote Config arka ucundan güncellenmiş parametre değerlerini getirebilir ve getirilen değerler uygulamanızda kullanılabilir. Daha fazla bilgi edinmek için Remote Config yükleme stratejilerini inceleyin.

Bu kılavuzda adımları uygulayın ve size birkaç örnek kod sağlayın. Bu kodun şuradan klonlayabilir veya indirilebilir: firebase/quickstart-unity GitHub deposudur.

1. adım: Uygulamanıza Remote Config'i 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 kaydedilip yapılandırıldı.

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

  • Firebase Unity SDK'sını (özellikle, FirebaseRemoteConfig.unitypackage) derleyip toparlarsınız.

ziyaret edin.

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'de ayarlayabilirsiniz ile bağlantı kurmadan önce amaçlandığı gibi davranmasını sağlamak için Remote Config arka ucu; 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. Hâlihazırda Remote Config arka uç parametre değerleri, dize sözlüğünüzü oluşturmak için kullanın. Daha fazla bilgi için bkz. İndir Remote Config şablonu 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. Mevcut değerlerini Remote Config arka ucuna yerleştirdiniz ve sonra bunları uygulamanızda kullanılabiliyor. Aksi takdirde, uygulama içi parametreyi değerleri SetDefaultsAsync().

Bu değerleri almak için GetValue() kullanın, parametre anahtarını bağımsız değişken olarak sağlar. 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. Menüden Remote Config'i seçerek Remote Config kontrol panelini görüntüleyin.
  3. Şu parametrede tanımladığınız parametrelerle aynı adlara sahip parametreleri tanımlayın: en iyi şekilde yararlanabilirsiniz. Her parametre için bir varsayılan değer ( uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerleri geçersiz kılar. Daha fazla bilgi edinmek için bkz. Remote Config parametreleri ve koşulları.

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

Remote Config arka ucundan parametre değerlerini almak için FetchAsync() yöntemidir. Arka uçta ayarladığınız tüm değerler getirilir ve Remote Config nesnesinde önbelleğe alınmış.

// 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öntemi önceki görevden geçmiştir (fetchTask) değerini alır. Bu değer, FetchComplete ürününün 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. Öyleyse, Daha sonra 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 getirdikten sonra, gerçek zamanlı Remote Config özelliğini kullanarak Remote Config arka ucundan gelen güncellemeleri dinleyin. Gerçek zamanlı Remote Config, güncelleme olduğunda bağlı cihazlara sinyal gönderir 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, şunun için Firebase Unity SDK v11.0.0+ ve sonraki sürümleri tarafından desteklenir: Android ve Apple platformları.

  1. Güncellemeleri dinlemeye başlamak için uygulamanızda OnConfigUpdateListener ekleyin ve yeni veya güncellenen tüm parametre değerlerini otomatik olarak getirir. 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'inizin yeni bir sürümünü yayınladığınızda ve değişiklikleri dinlerken tamamlama işleyicisi çağrılır.

Sonraki adımlar

Henüz yapmadıysanız Remote Config'i keşfedin kullanım alanlarına göz atın ve Aşağıdakileri içeren temel kavramlar ve gelişmiş stratejilerle ilgili belgeler: