| प्लैटफ़ॉर्म चुनें: | iOS+ Android Web Flutter Unity C++ |
Firebase Remote Config का इस्तेमाल करके, अपने ऐप्लिकेशन में पैरामीटर तय किए जा सकते हैं. साथ ही, क्लाउड में उनकी वैल्यू अपडेट की जा सकती हैं. इससे, ऐप्लिकेशन का अपडेट डिस्ट्रिब्यूट किए बिना ही, उसके लुक और काम करने के तरीके में बदलाव किया जा सकता है.
Remote Config लाइब्रेरी का इस्तेमाल, ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेव करने, Remote Config बैकएंड से अपडेट की गई पैरामीटर वैल्यू फ़ेच करने, और यह कंट्रोल करने के लिए किया जाता है कि फ़ेच की गई वैल्यू आपके ऐप्लिकेशन के लिए कब उपलब्ध कराई जाएं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन लोड करने की रणनीतियां देखें.
इस गाइड में, शुरू करने के तरीके के बारे में बताया गया है. साथ ही, इसमें कुछ सैंपल कोड भी दिए गए हैं. इन सभी को firebase/quickstart-unity GitHub रिपॉज़िटरी से क्लोन या डाउनलोड किया जा सकता है.
पहला चरण: अपने ऐप्लिकेशन में Remote Config जोड़ना
रिमोट कॉन्फ़िगरेशन का इस्तेमाल करने से पहले, Remote Config, आपको ये काम करने होंगे:
अपने यूनिटी प्रोजेक्ट को रजिस्टर करें और उसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.
अगर आपका यूनिटी प्रोजेक्ट पहले से ही Firebase का इस्तेमाल कर रहा है, तो वह पहले से ही Firebase के लिए रजिस्टर और कॉन्फ़िगर किया गया है.
अगर आपके पास कोई यूनिटी प्रोजेक्ट नहीं है, तो आप एक सैंपल ऐप्लिकेशन डाउनलोड कर सकते हैं.
अपने यूनिटी प्रोजेक्ट में Firebase Unity SDK (खास तौर पर,
FirebaseRemoteConfig.unitypackage) जोड़ें.
दूसरा चरण: ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेट करना
रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में, ऐप्लिकेशन में पैरामीटर की डिफ़ॉल्ट वैल्यू सेट की जा सकती हैं. इससे, आपका ऐप्लिकेशन रिमोट कॉन्फ़िगरेशन बैकएंड से कनेक्ट होने से पहले, आपकी उम्मीद के मुताबिक काम करता है. साथ ही, अगर बैकएंड में कोई वैल्यू सेट नहीं की गई है, तो डिफ़ॉल्ट वैल्यू उपलब्ध होती हैं.Remote ConfigRemote 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 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
का इस्तेमाल करके यह तय करता है कि टास्क भी पूरा हुआ या नहीं. अगर ऐसा है, तो
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}.");
});
}
Values fetched using
FetchAsync()
फ़ेच पूरा होने पर स्थानीय तौर पर कैश की जाती हैं. हालांकि,
ActivateAsync()
को लागू किए जाने तक, ये वैल्यू उपलब्ध नहीं होती हैं. इससे यह पक्का किया जा सकता है कि नई वैल्यू, कैलकुलेशन के बीच में या अन्य ऐसे समय पर लागू न की जाएं जिनसे समस्याएं या अजीब व्यवहार हो सकता है.
छठा चरण: रीयल टाइम में अपडेट के लिए सुनना
पैरामीटर वैल्यू फ़ेच करने के बाद, रीयल-टाइम Remote Config का इस्तेमाल करके, Remote Config बैकएंड से मिलने वाले अपडेट के लिए सुना जा सकता है. जब अपडेट उपलब्ध होते हैं, तब रीयल-टाइम Remote Config कनेक्ट किए गए डिवाइसों को सिग्नल भेजता है. साथ ही, नया Remote Config वर्शन पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच कर लेता है.
Android और Apple प्लैटफ़ॉर्म के लिए, रीयल-टाइम अपडेट की सुविधा, Firebase Unity SDK के 11.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 का नया वर्शन पब्लिश किया जाएगा, तब आपके ऐप्लिकेशन को चलाने वाले और बदलावों के लिए सुनने वाले डिवाइस , पूरा होने वाला हैंडलर कॉल करेंगे.