আপনি আপনার অ্যাপে প্যারামিটারগুলি সংজ্ঞায়িত করতে এবং ক্লাউডে তাদের মান আপডেট করতে Firebase Remote Config ব্যবহার করতে পারেন, যার ফলে আপনি অ্যাপ আপডেট বিতরণ না করেই আপনার অ্যাপের চেহারা এবং আচরণ পরিবর্তন করতে পারবেন।
Remote Config লাইব্রেরিটি অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সংরক্ষণ করতে, Remote Config ব্যাকএন্ড থেকে আপডেট করা প্যারামিটার মান আনতে এবং আপনার অ্যাপে কখন আনা মানগুলি উপলব্ধ করা হবে তা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। আরও জানতে, রিমোট কনফিগ লোডিং কৌশলগুলি দেখুন।
এই নির্দেশিকাটি আপনাকে শুরু করার ধাপগুলি সম্পর্কে জানাবে এবং কিছু নমুনা কোড প্রদান করবে, যার সবকটিই firebase/quickstart-unity GitHub সংগ্রহস্থল থেকে ক্লোন বা ডাউনলোড করার জন্য উপলব্ধ।
ধাপ ১: আপনার অ্যাপে Remote Config যোগ করুন
Remote Config ব্যবহার করার আগে, আপনাকে যা করতে হবে:
আপনার ইউনিটি প্রকল্পটি নিবন্ধন করুন এবং এটিকে Firebase ব্যবহারের জন্য কনফিগার করুন।
যদি আপনার ইউনিটি প্রজেক্ট ইতিমধ্যেই Firebase ব্যবহার করে, তাহলে এটি ইতিমধ্যেই Firebase-এর জন্য নিবন্ধিত এবং কনফিগার করা আছে।
যদি আপনার কোন ইউনিটি প্রজেক্ট না থাকে, তাহলে আপনি একটি নমুনা অ্যাপ ডাউনলোড করতে পারেন।
আপনার ইউনিটি প্রজেক্টে Firebase Unity SDK (বিশেষ করে,
FirebaseRemoteConfig.unitypackage
) যোগ করুন।
মনে রাখবেন যে আপনার ইউনিটি প্রজেক্টে ফায়ারবেস যোগ করার ক্ষেত্রে Firebase কনসোল এবং আপনার ওপেন ইউনিটি প্রজেক্ট উভয় ক্ষেত্রেই কাজ জড়িত (উদাহরণস্বরূপ, আপনি কনসোল থেকে ফায়ারবেস কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলিকে আপনার ইউনিটি প্রজেক্টে স্থানান্তর করেন)।
ধাপ ২: অ্যাপ-মধ্যস্থ ডিফল্ট প্যারামিটার মান সেট করুন
আপনি Remote Config অবজেক্টে ইন-অ্যাপ ডিফল্ট প্যারামিটার মান সেট করতে পারেন, যাতে আপনার অ্যাপটি Remote Config ব্যাকএন্ডের সাথে সংযোগ স্থাপনের আগে যেমনটি ইচ্ছা তেমন আচরণ করে এবং ব্যাকএন্ডে কোনওটি সেট না করা থাকলে ডিফল্ট মানগুলি উপলব্ধ থাকে।
এটি করার জন্য, একটি স্ট্রিং অভিধান তৈরি করুন এবং আপনি যে ডিফল্টগুলি যোগ করতে চান তার প্রতিনিধিত্ব করে কী/মান জোড়া দিয়ে এটি পূরণ করুন। যদি আপনি ইতিমধ্যেই Remote Config ব্যাকএন্ড প্যারামিটার মানগুলি কনফিগার করে থাকেন, তাহলে আপনি এই কী/মান জোড়াগুলি ধারণকারী একটি ফাইল ডাউনলোড করতে পারেন এবং আপনার স্ট্রিং অভিধান তৈরি করতে এটি ব্যবহার করতে পারেন। আরও তথ্যের জন্য, Remote Config টেমপ্লেট ডিফল্ট ডাউনলোড দেখুন।
( SetDefaultsAsync()
কল করা হলে নন-স্ট্রিং প্রোপার্টিগুলি প্রোপার্টির ধরণে রূপান্তরিত হবে)।
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 => {
ধাপ ৩: আপনার অ্যাপে ব্যবহারের জন্য প্যারামিটার মান পান
এখন আপনি Remote Config অবজেক্ট থেকে প্যারামিটার মান পেতে পারেন। আপনি যদি Remote Config ব্যাকএন্ডে মান সেট করেন, সেগুলি আনেন এবং তারপর সক্রিয় করেন, তাহলে সেই মানগুলি আপনার অ্যাপে উপলব্ধ হবে। অন্যথায়, আপনি SetDefaultsAsync()
ব্যবহার করে কনফিগার করা ইন-অ্যাপ প্যারামিটার মানগুলি পাবেন।
এই মানগুলি পেতে, GetValue()
ব্যবহার করুন, একটি আর্গুমেন্ট হিসেবে প্যারামিটার কী প্রদান করুন। এটি একটি ConfigValue
প্রদান করে, যার মানকে বিভিন্ন বেস টাইপে রূপান্তর করার বৈশিষ্ট্য রয়েছে।
ধাপ ৪: প্যারামিটারের মান সেট করুন
- Firebase কনসোলে , আপনার প্রকল্পটি খুলুন।
- Remote Config ড্যাশবোর্ড দেখতে মেনু থেকে Remote Config নির্বাচন করুন।
- আপনার অ্যাপে সংজ্ঞায়িত প্যারামিটারের নামের সাথে একই নামের প্যারামিটারগুলি সংজ্ঞায়িত করুন। প্রতিটি প্যারামিটারের জন্য, আপনি একটি ডিফল্ট মান (যা অবশেষে অ্যাপ-মধ্যস্থ ডিফল্ট মানকে ওভাররাইড করবে) এবং শর্তাধীন মান সেট করতে পারেন। আরও জানতে, Remote Config প্যারামিটার এবং শর্তাবলী দেখুন।
ধাপ ৫: মানগুলি আনুন এবং সক্রিয় করুন (প্রয়োজন অনুসারে)
Remote Config ব্যাকএন্ড থেকে প্যারামিটার মান আনতে, FetchAsync()
পদ্ধতিটি কল করুন। ব্যাকএন্ডে আপনি যে কোনও মান সেট করেন তা Remote Config অবজেক্টে আনা এবং ক্যাশে করা হয়।
// 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); }
উপরের কোডে, FetchComplete
হল এমন একটি পদ্ধতি যার স্বাক্ষর ContinueWithOnMainThread()
এর ওভারলোডগুলির একটির প্যারামিটারের সাথে মেলে।
নিচের নমুনা কোডে, FetchComplete
পদ্ধতিটি পূর্ববর্তী কাজটি ( fetchTask
) পাস করে, যা FetchComplete
এটি সম্পন্ন হয়েছে কিনা তা নির্ধারণ করতে দেয়। কোডটি Info.LastFetchStatus
ব্যবহার করে তারপর নির্ধারণ করে যে finish সফল হয়েছে কিনা। যদি তাই হয়, তাহলে Remote Config প্যারামিটার মানগুলি ActivateAsync()
ব্যবহার করে সক্রিয় করা হয়।
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()
ব্যবহার করে আনা মানগুলি যখন আনা সম্পন্ন হয় তখন স্থানীয়ভাবে ক্যাশে করা হয়, কিন্তু ActivateAsync()
চালু না হওয়া পর্যন্ত উপলব্ধ করা হয় না। এটি আপনাকে নিশ্চিত করতে দেয় যে নতুন মানগুলি গণনার মাঝামাঝি প্রয়োগ করা হয়নি, অথবা অন্য সময়ে সমস্যা বা অদ্ভুত আচরণের কারণ হতে পারে না।
ধাপ ৬: রিয়েল টাইমে আপডেট শুনুন
প্যারামিটার মান আনার পর, আপনি Remote Config ব্যাকএন্ড থেকে আপডেট শুনতে রিয়েল-টাইম Remote Config ব্যবহার করতে পারেন। আপডেট পাওয়া গেলে রিয়েল-টাইম Remote Config সংযুক্ত ডিভাইসগুলিতে সংকেত পাঠায় এবং একটি নতুন Remote Config সংস্করণ প্রকাশ করার পরে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি আনে।
রিয়েল-টাইম আপডেটগুলি Android এবং Apple প্ল্যাটফর্মের জন্য Firebase Unity SDK v11.0.0+ এবং উচ্চতর সংস্করণ দ্বারা সমর্থিত।
- আপনার অ্যাপে, আপডেট শোনা শুরু করতে এবং স্বয়ংক্রিয়ভাবে যেকোনো নতুন বা আপডেট করা প্যারামিটার মান আনতে একটি
OnConfigUpdateListener
যোগ করুন। তারপর, আপডেট ইভেন্টগুলি প্রক্রিয়া করার জন্য একটিConfigUpdateListenerEventHandler
তৈরি করুন। নিম্নলিখিত উদাহরণটি আপডেটগুলি শোনে এবং একটি আপডেট করা স্বাগত বার্তা প্রদর্শন করতে নতুন আনা মানগুলি ব্যবহার করে।
// 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 এর একটি নতুন সংস্করণ প্রকাশ করবেন, তখন যেসব ডিভাইস আপনার অ্যাপটি চালাচ্ছে এবং পরিবর্তনগুলি শুনছে তারা সমাপ্তি হ্যান্ডলারকে কল করবে।
Next steps
If you haven't already, explore the Remote Config use cases , and take a look at some of the key concepts and advanced strategies documentation, including: