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 için kullanılır. Remote Config arka ucundan güncellenmiş parametre değerlerini getir 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: Remote Config uygulamasını uygulamanıza 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) şuraya ekleyin: 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 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. Hâlihazırda Remote Config arka uç parametre değerleri varsa, şu özelliklere sahip bir dosyayı indirebilirsiniz: dize sözlüğünüzü oluşturmak için kullanın. 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. Mevcut değerleri Remote Config arka ucunda getirebilir, getirebilir ve daha sonra 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. Remote Config kontrol panelini görüntülemek için menüden Remote Config simgesini seçin.
  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 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 değerler getirilir ve Remote Config nesnesinde önbelleğe alındı.

// 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 işlevini kullanarak Remote Config arka ucundan gelen güncellemeleri dinleyin. 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, şunun için Firebase Unity SDK'sı v11.0.0+ ve sonraki sürümler 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;
}

Bir dahaki sefere Remote Config cihazınızın 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 hakkında bilgi edinin. kullanım alanlarına göz atın ve Aşağıdakileri içeren temel kavramlar ve gelişmiş stratejilerle ilgili belgeler: