Firebase Remote Config'i kullanmaya başlayın


Uygulamanızda parametreleri tanımlamak ve 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 getirmek ve getirilen 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 bölümüne bakın.

Bu kılavuz, başlangıç adımlarında size yol gösterir ve firebase/quickstart-unity GitHub deposundan klonlayabileceğiniz veya indirebileceğiniz bazı örnek kodlar 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 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 uygulama indirebilirsiniz.

  • Firebase Unity SDK'sını (spesifik olarak, FirebaseRemoteConfig.unitypackage) Unity projenize ekleyin.

Firebase'i Unity projenize eklemenin hem Firebase konsolunda hem de açık Unity projenizde görevleri içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirir ve ardından Unity projenize taşırsınız).

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

Uygulama içi varsayılan parametre değerlerini Remote Config nesnesinde ayarlayabilirsiniz. Böylece uygulamanız Remote Config arka ucuna bağlanmadan önce amaçlandığı gibi davranır. Böylece, arka uçta hiçbir parametre ayarlanmamışsa varsayılan değerler kullanılabilir.

Bunu yapmak 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 bu dosyayı 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 özelliğin 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 parametre değerlerini Remote Config nesnesinden alabilirsiniz. Remote Config arka ucunda değerler ayarlar, bunları getirir ve ardından 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ğerleri elde edersiniz.

Bu değerleri almak için parametre anahtarını bağımsız değişken olarak sağlayıp GetValue() kullanın. Bu işlem, değeri çeşitli temel türlere dönüştürecek özelliklere sahip bir ConfigValue döndürür.

4. Adım: Parametre değerlerini ayarlayın

  1. Firebase konsolunda projenizi açın.
  2. Remote Config kontrol panelini görmek 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 bir parametre için varsayılan değer (bu işlem sonucunda uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler belirleyebilirsiniz. Daha fazla bilgi edinmek için Remote Config parametreleri ve koşulları bölümüne bakın.

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

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

Aşağıdaki örnek kodda FetchComplete yöntemi, önceki görevden (fetchTask) geçirilir. Bu yöntem, FetchComplete yönteminin işlemin tamamlanıp tamamlanmadığını belirlemesini sağlar. Kod, daha sonra 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ılana kadar kullanıma sunulmaz. Böylece, yeni değerlerin hesaplamanın ortasında veya sorunlara ya da tuhaf davranışlara neden olabilecek diğer zamanlarda uygulanmamasını sağlayabilirsiniz.

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

Gerçek zamanlı güncellemeler, Android ve Apple platformları için Firebase Unity SDK v11.0.0+ ve üzeri sürümlerde desteklenir.

  1. Güncellemeleri dinlemeye başlamak için uygulamanıza bir OnConfigUpdateListener ekleyin ve yeni veya güncellenen tüm parametre değerlerini otomatik olarak getirin. Ardından, güncelleme etkinliklerini işlemek için bir ConfigUpdateListenerEventHandler oluşturun. Aşağıdaki örnek, güncellemeleri dinler ve güncellenmiş bir karşılama mesajını göstermek 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ü 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 Config kullanım alanlarını inceleyin ve aşağıdakiler de dahil olmak üzere bazı temel kavramlara ve gelişmiş stratejiler belgelerine göz atın: