Firebase Remote Config'i kullanmaya başlayın


Firebase Remote Config'i kullanarak uygulamanızda parametreleri tanımlayabilir ve bunların değerlerini bulutta güncelleyebilirsiniz. Bu sayede 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ıma sunulacağını kontrol etmek için kullanılır. Daha fazla bilgi için Remote Config yükleme stratejileri bölümüne bakın.

Bu kılavuz, başlangıç adımlarında sizi yönlendirir ve firebase/quickstart-unity GitHub deposundan klonlamak veya indirmek için kullanabileceğiniz bir örnek kod sağlar.

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

Remote Config'i kullanabilmek için şunları yapmanız gerekir:

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

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

    • Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.

  • Unity projenize Firebase Unity SDK'yı (özellikle FirebaseRemoteConfig.unitypackage) 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ğerleri ayarlayabilirsiniz. Böylece, uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır ve arka uçta hiçbiri ayarlanmazsa varsayılan değerler kullanılabilir.

Bunun için bir dize sözlüğü oluşturun ve bu sözlüğü, eklemek istediğiniz varsayılan değerleri temsil eden anahtar/değer çiftleriyle doldurun. Remote Config arka uç parametre değerlerini zaten 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 Remote Config şablonu varsayılanlarını indirme bölümüne bakın.

(SetDefaultsAsync() çağrıldığında, dize olmayan özellikler 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 ayarlar, bunları getirir ve etkinleştirirseniz 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 GetValue() işlevini kullanarak parametre anahtarını bağımsız değişken olarak sağlayın. Bu işlem, değeri çeşitli temel türlerine dönüştüren özelliklere sahip bir ConfigValue döndürür.

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. Parametreleri, uygulamanızda tanımladığınız parametrelerle aynı adlara sahip olarak tanımlayın. Her parametre için bir varsayılan değer (bu işlem sonunda uygulama içi varsayılan değeri geçersiz kılacak) ve koşullu değerler ayarlayabilirsiniz. Daha fazla bilgi edinmek için Remote Config parametreleri ve koşullarına göz atın.

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

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

Aşağıdaki örnek kodda FetchComplete yöntemi önceki görev (fetchTask) iletilmiştir. Bu da FetchComplete yönteminin tamamlanıp tamamlanmadığını belirlemesini sağlar. Kod, bitirmenin de başarılı olup olmadığını belirlemek için Info.LastFetchStatus simgesini kullanır. Bu durumda, Remote Config parametre değerleri daha sonra 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 tamamlandığında yerel olarak önbelleğe alınır. Ancak ActivateAsync() çağrılana kadar kullanılamaz. Bu, yeni değerlerin hesaplamanın ortasında ya da bazen sorunlara veya tuhaf davranışlara neden olabilecek şekilde uygulanmamasını sağlar.

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

Parametre değerlerini getirdikten sonra, Remote Config arka ucundan gelen güncellemeleri dinlemek için gerçek zamanlı Remote Config'i kullanabilirsiniz. Gerçek zamanlı Remote Config, güncellemeler hazır olduğunda bağlı cihazlara sinyal gönderir ve yeni bir Remote Config sürümü yayınlamanızın ardından 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 ya da güncellenen parametre değerlerini otomatik olarak getirmek için uygulamanızda OnConfigUpdateListener ekleyin. Ardından, güncelleme etkinliklerini işlemek için bir ConfigUpdateListenerEventHandler oluşturun. Aşağıdaki örnekte güncellemeleri dinleyip yeni getirilen değerleri kullanarak güncellenmiş bir karşılama mesajı görüntüleyebilirsiniz.
// 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, uygulamanızı çalıştıran ve değişiklikleri dinleyen cihazlar tamamlama işleyiciyi çağırır.

Sonraki adımlar

Henüz yapmadıysanız Remote Config kullanım alanlarını inceleyin ve aşağıdakiler dahil olmak üzere bazı temel kavramlara ve gelişmiş strateji belgelerine göz atın: