Firebase Remote Config'i kullanmaya başlayın


Uygulamanızdaki parametreleri tanımlamak ve bunların değerlerini bulutta güncellemek için Firebase Remote Config'i 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 almak ve getirilen değerlerin ne zaman uygulamanız için kullanılabilir hale getirileceğini kontrol etmek için kullanılır. Daha fazla bilgi edinmek için Uzaktan Yapılandırma yükleme stratejilerine bakın.

Bu kılavuz, başlangıç ​​adımlarında size yol gösterir ve tümü firebase/quickstart-unity GitHub deposundan kopyalanabilen veya indirilebilen bazı örnek kodlar sağlar.

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

Remote Config'i kullanmadan önce şunları yapmanız gerekir:

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

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

    • 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 konsolundaki hem de açık Unity projenizdeki görevleri içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir ve ardından bunları Unity projenize taşırsınız).

2. Adım: Uygulama içi varsayılan parametre değerlerini ayarlayın

Remote Config nesnesinde uygulama içi varsayılan parametre değerlerini ayarlayabilirsiniz, böylece uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır ve arka uçta ayarlanmadığı takdirde varsayılan değerler kullanılabilir olur.

Bunu yapmak için bir dize sözlüğü oluşturun ve bunu eklemek istediğiniz varsayılanları temsil eden anahtar/değer çiftleriyle doldurun. Remote Config arka uç parametre değerlerini önceden yapılandırdıysanız, bu anahtar/değer çiftlerini içeren bir dosyayı indirebilir ve bunu dize sözlüğünüzü oluşturmak için kullanabilirsiniz. Daha fazla bilgi için bkz. Uzaktan Yapılandırma şablonu varsayılanlarını indirme .

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

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ğerlerini alabilirsiniz. Remote Config arka ucunda değerleri ayarlarsanız, bunları getirirseniz ve ardından etkinleştirirseniz bu değerler uygulamanızda kullanılabilir. Aksi takdirde, SetDefaultsAsync() kullanılarak yapılandırılmış uygulama içi parametre değerlerini alırsınız.

Bu değerleri elde etmek için parametre anahtarını bağımsız değişken olarak sağlayarak GetValue() işlevini kullanın. Bu, değeri çeşitli temel türlere dönüştürme özelliklerine sahip bir ConfigValue döndürür.

Adım 4: 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'i seçin.
  3. Uygulamanızda tanımladığınız parametrelerle aynı adlara sahip parametreleri tanımlayın. Her parametre için varsayılan bir değer (sonunda uygulama içi varsayılan değeri geçersiz kılacak) ve koşullu değerleri ayarlayabilirsiniz. Daha fazla bilgi edinmek için bkz. Uzaktan Yapılandırma parametreleri ve koşulları .

5. Adım: Değerleri alın ve etkinleştirin (gerektiği gibi)

Remote Config arka ucundan parametre değerlerini almak için FetchAsync() yöntemini çağırın. Arka uçta ayarladığınız tüm değerler Remote Config nesnesine getirilir ve ö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() aşırı yüklemelerinden birinin parametreleriyle eşleşen bir yöntemdir.

Aşağıdaki örnek kodda, FetchComplete yöntemi önceki görevden ( fetchTask ) geçirilir ve bu, FetchComplete bitip bitmediğini belirlemesine olanak tanır. 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ılıncaya kadar kullanılamaz. Bu, yeni değerlerin hesaplamanın ortasında veya sorunlara veya tuhaf davranışlara neden olabilecek diğer zamanlarda uygulanmadığından emin olmanızı sağlar.

6. Adım: Güncellemeleri gerçek zamanlı olarak dinleyin

Parametre değerlerini getirdikten sonra, Remote Config arka ucundan güncellemeleri dinlemek için gerçek zamanlı Remote Config'i kullanabilirsiniz. Gerçek Zamanlı Remote Config, güncellemeler mevcut olduğunda bağlı cihazlara 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, Android ve Apple platformları için Firebase Unity SDK v11.0.0+ ve sonraki sürümleri tarafından desteklenir.

  1. Güncellemeleri dinlemeye başlamak ve yeni veya güncellenmiş parametre değerlerini otomatik olarak getirmek için uygulamanıza bir OnConfigUpdateListener ekleyin. Ardından güncelleme olaylarını işlemek için bir ConfigUpdateListenerEventHandler oluşturun. Aşağıdaki örnek, güncellemeleri dinler ve güncellenmiş bir karşılama mesajını görüntülemek için yeni getirilen değerleri kullanı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'inizin yeni bir sürümünü bir sonraki yayınlayışınızda, uygulamanızı çalıştıran ve değişiklikleri dinleyen cihazlar tamamlama işleyicisini arayacaktır.

Sonraki adımlar

Henüz yapmadıysanız, uzaktan yapılandırma kullanım durumlarını keşfedin ve bazı temel kavramlara ve gelişmiş stratejiler belgelerini aşağıdakilere inceleyin: