| Platform seçin: | iOS+ Android Web Flutter Unity C++ |
Uygulamanızda parametreleri tanımlamak ve buluttaki değerlerini güncellemek için Firebase Remote Config hizmetini kullanabilirsiniz. Böylece uygulama güncellemesi yayınlamadan 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üncellenen parametre değerlerini almak ve alınan değerlerin uygulamanızda ne zaman kullanılabilir hale getirileceğini kontrol etmek için kullanılır. Daha fazla bilgi 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 kullanmaya başlamak için şunları yapmanız gerekir:
Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.
Unity projeniz Firebase'i kullanıyorsa Firebase için zaten kayıtlı ve yapılandırılmış demektir.
Unity projeniz yoksa örnek uygulama indirebilirsiniz.
Firebase Unity SDK'sını (özellikle
FirebaseRemoteConfig.unitypackage) Unity projenize ekleyin.
Unity projenize Firebase eklemek için hem Firebase konsolunda hem de açık Unity projenizde görevler gerçekleştirmeniz gerekir (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip Unity projenize taşımanız gerekir).
2. adım: Uygulama içi varsayılan parametre değerlerini ayarlama
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 ve arka uçta herhangi bir değer ayarlanmamışsa varsayılan değerler kullanılabilir.
Bunun 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 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 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 alın
Artık Remote Config nesnesinden parametre değerlerini alabilirsiniz. Remote Config arka ucunda değerler ayarladıysanız, bunları aldıysanız ve ardından etkinleştirdiyseniz 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ğlayarak GetValue() yöntemini kullanın. Bu, değeri çeşitli temel türlere dönüştürme özelliklerine sahip bir ConfigValue 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ı adlara sahip parametreler tanımlayın. Her parametre için varsayılan bir değer (sonuçta 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ı başlıklı makaleyi inceleyin.
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 tüm değerler getirilir ve 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); }
Ö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 aynı zamanda 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ılamaz. Bu sayede, yeni değerlerin hesaplama sırasında veya sorunlara ya da garip davranışlara neden olabilecek başka zamanlarda uygulanmamasını sağlayabilirsiniz.
6. adım: Güncellemeleri anlık olarak dinleme
Parametre değerlerini aldıktan sonra Remote Config arka ucundan gelen güncellemeleri dinlemek için gerçek zamanlı Remote Config özelliğini kullanabilirsiniz. Gerçek zamanlı Remote Config, güncellemeler kullanıma sunulduğ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.
Anlık güncellemeler, Android ve Apple platformları için Firebase Unity SDK'sının 11.0.0 ve sonraki sürümleri tarafından desteklenir.
- Güncellemeleri dinlemeye başlamak ve yeni ya da güncellenmiş parametre değerlerini otomatik olarak almak için uygulamanıza bir
OnConfigUpdateListenerekleyin. Ardından, güncelleme etkinliklerini işlemek için birConfigUpdateListenerEventHandleroluşturun. Aşağıdaki örnekte, güncellemeler dinlenir ve güncellenmiş bir karşılama mesajı göstermek için yeni getirilen değerler kullanılı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 uygulamanızın 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 çağırır.