| Platform seçin: | iOS+ Android Web Flutter Unity C++ |
Uygulamanızdaki parametreleri tanımlamak ve değerlerini bulutta güncellemek için Firebase Remote Config kullanabilirsiniz. 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ılabileceğini kontrol etmek için kullanılır. Daha fazla bilgi edinmek için Remote Config yükleme stratejileri başlıklı makaleyi inceleyin.
Bu kılavuzda, başlangıç adımları açıklanmakta ve bazı örnek kodlar verilmektedir. Bu kodların tümü, firebase/quickstart-unity GitHub deposundan klonlanabilir veya indirilebilir.
1. adım: Uygulamanıza Remote Config ekleyin
Remote Config özelliğini kullanabilmek için:
Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
Unity projenizde Firebase kullanılıyorsa proje Firebase için kaydedilmiş ve yapılandırılmış demektir.
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 konsolda hem de açık Unity projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip Unity projenize taşırsınız).
2. adım: Uygulama içi varsayılan parametre değerlerini ayarlayın
Uygulamanız Remote Config arka ucuna bağlanmadan önce beklendiği gibi davranması ve arka uçta ayarlanmamışsa varsayılan değerlerin kullanılabilmesi için Remote Config nesnesinde uygulama içi varsayılan parametre değerleri ayarlayabilirsiniz.
Bunu yapmak için bir dize sözlüğü oluşturun ve eklemek istediğiniz varsayılanları 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 dosyayı indirebilir ve dize sözlüğünüzü oluşturmak için kullanabilirsiniz. Daha fazla bilgi için Şablon Remote Config varsayılanlarını indirme başlıklı makaleyi inceleyin.
(Dize olmayan özellikler, SetDefaultsAsync() çağrıldığında ö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 kullanmak için parametre değerleri edinin
Artık parametre değerlerini Remote Config nesnesinden alabilirsiniz. Remote Config arka ucunda değerler ayarlayıp bunları alıp etkinleştirirseniz bu değerler uygulamanızda 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 parametre anahtarını bağımsız değişken olarak sağlayan GetValue() işlevini kullanın. Bu, değeri çeşitli temel türlere dönüştürme özelliklerine sahip olan ConfigValue değerini döndürür.
4. adım: Parametre değerlerini ayarlayın
Firebase konsolunda DevOps & Engagement > Remote Config'e gidin.
Uygulamanızda tanımladığınız parametrelerle aynı ada sahip parametreler tanımlayın. Her parametre için varsayılan bir değer (bu değer, uygulama içi varsayılan değeri geçersiz kılar) ve koşullu değerler ayarlayabilirsiniz. Daha fazla bilgi edinmek için Remote Config parametreleri ve koşulları inceleyin.
5. adım: Değerleri getirin ve etkinleştirin (gerekirse)
Parametre değerlerini Remote Config arka ucundan getirmek için FetchAsync() yöntemini çağırın. Arka uçta ayarladığınız tüm değerler, Remote Config nesnesinde getirilip ö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); }
Önceki kodda FetchComplete, imzası ContinueWithOnMainThread()'ün aşırı yüklemelerinden birinin parametreleriyle eşleşen bir yöntemdir.
Aşağıdaki örnek kodda, FetchComplete yöntemine önceki görev (fetchTask) iletilir. Bu sayede FetchComplete, görevin tamamlanıp tamamlanmadığını belirleyebilir. 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ılana kadar kullanıma sunulmaz. Bu sayede, yeni değerlerin hesaplama sırasında veya sorunlara ya da tuhaf davranışlara neden olabilecek diğer zamanlarda uygulanmadığından emin olabilirsiniz.
6. adım: Güncellemeleri anlık olarak dinleyin
Parametre değerlerini getirdikten sonra, Remote Config arka ucundan gelen güncellemeleri dinlemek için gerçek zamanlı Remote Config kullanabilirsiniz. Güncellemeler kullanıma sunulduğunda bağlı cihazlara Remote Config anlık sinyaller gönderir ve yeni bir Remote Config sürümü yayınladığınızda değişiklikleri otomatik olarak getirir.
Anlık güncellemeler, Android ve Apple platformları için Firebase Unity SDK v11.0.0 ve sonraki sürümlerinde desteklenir.
- Uygulamanızda, güncellemeleri dinlemeye başlamak ve yeni veya güncellenmiş parametre değerlerini otomatik olarak getirmek için bir
OnConfigUpdateListenerekleyin. Ardından, güncelleme etkinliklerini işlemek için birConfigUpdateListenerEventHandleroluşturun. Aşağıdaki örnek, güncellemeleri dinler ve yeni getirilen değerleri kullanarak güncellenmiş bir karşılama mesajı gösterir.
// 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 sonraki Remote Config 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.