Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल शुरू करना


Firebase रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके, अपने ऐप्लिकेशन में पैरामीटर तय किए जा सकते हैं और इससे क्लाउड में उनकी वैल्यू अपडेट हो जाती हैं. इससे, आपको लुक में बदलाव करने और ऐप्लिकेशन का अपडेट उपलब्ध कराए बिना आपके ऐप्लिकेशन के काम करने का तरीका.

रिमोट कॉन्फ़िगरेशन लाइब्रेरी का इस्तेमाल, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू, रिमोट कॉन्फ़िगरेशन बैकएंड से, अपडेट की गई पैरामीटर वैल्यू फ़ेच करें और कंट्रोल करें फ़ेच किए जाने पर वैल्यू, आपके ऐप्लिकेशन में उपलब्ध कराई जाती हैं. ज़्यादा जानने के लिए, रिमोट कॉन्फ़िगरेशन लोड करने से जुड़ी रणनीतियां देखें.

इस गाइड से आपको चरणों के बारे में बताना है और कुछ सैंपल कोड देना है, जिनमें से हर एक क्लोन करने या डाउनलोड करने के लिए, firebase/quickstart-unity GitHub रिपॉज़िटरी.

पहला चरण: अपने ऐप्लिकेशन में रिमोट कॉन्फ़िगरेशन जोड़ना

इस्तेमाल करने से पहले रिमोट कॉन्फ़िगरेशन, आपको ये काम करने होंगे:

  • अपना Unity प्रोजेक्ट रजिस्टर करें और इसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.

    • अगर आपके यूनिटी प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल किया जा रहा है, तो इसका मतलब है कि Firebase के लिए रजिस्टर और कॉन्फ़िगर किया गया है.

    • अगर आपके पास Unity प्रोजेक्ट नहीं है, तो ऐप्लिकेशन का नमूना.

  • Firebase Unity SDK (खास तौर पर, FirebaseRemoteConfig.unitypackage) को आपका Unity प्रोजेक्ट भी सही है.

ध्यान दें कि Firebase को अपने यूनिटी प्रोजेक्ट में जोड़ने पर, Firebase कंसोल और आपके खुले हुए Unity प्रोजेक्ट में उदाहरण के लिए, कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करें. इसके बाद, उन्हें आपके Unity प्रोजेक्ट में शामिल किया जाएगा.

दूसरा चरण: ऐप्लिकेशन में डिफ़ॉल्ट पैरामीटर वैल्यू को सेट करना

रिमोट कॉन्फ़िगरेशन में, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू सेट की जा सकती हैं ऑब्जेक्ट की बुकिंग करें, ताकि आपका ऐप्लिकेशन रिमोट कॉन्फ़िगरेशन बैकएंड बैकएंड में सेट किया जा सकता है.

ऐसा करने के लिए, स्ट्रिंग डिक्शनरी बनाएं और उसे की/वैल्यू पेयर से भरें उन डिफ़ॉल्ट को दिखाता है जिन्हें आपको जोड़ना है. अगर आपने पहले ही कॉन्फ़िगर कर लिया है रिमोट कॉन्फ़िगरेशन के बैकएंड पैरामीटर की वैल्यू का इस्तेमाल करके, ऐसी फ़ाइल डाउनलोड की जा सकती है में ये कुंजी/वैल्यू पेयर होते हैं और इनका इस्तेमाल आपके स्ट्रिंग शब्दकोश को बनाने में किया जाता है. ज़्यादा जानकारी के लिए, यह देखें डाउनलोड करें रिमोट कॉन्फ़िगरेशन टेंप्लेट की डिफ़ॉल्ट सेटिंग.

(नॉन-स्ट्रिंग प्रॉपर्टी 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 => {

तीसरा चरण: अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर वैल्यू पाना

अब रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट से पैरामीटर वैल्यू हासिल की जा सकती है. अगर आपने सेट किया है, तो रिमोट कॉन्फ़िगरेशन बैकएंड में वैल्यू इकट्ठा करके, उन्हें फ़ेच किया गया और फिर उन्हें चालू किया गया, वे मान आपके ऐप्लिकेशन के लिए उपलब्ध हों. नहीं तो, आपको इन-ऐप्लिकेशन पैरामीटर मिलेगा इसका इस्तेमाल करके कॉन्फ़िगर की गई वैल्यू SetDefaultsAsync().

ये वैल्यू पाने के लिए, GetValue() का इस्तेमाल करें. पैरामीटर कुंजी को तर्क के रूप में डालकर. इससे ConfigValue, इसमें प्रॉपर्टी की मदद से, वैल्यू को अलग-अलग तरह के आधार में बदला जा सकता है.

चौथा चरण: पैरामीटर वैल्यू को सेट करना

  1. Firebase कंसोल में अपना प्रोजेक्ट खोलें.
  2. रिमोट कॉन्फ़िगरेशन डैशबोर्ड देखने के लिए मेन्यू से रिमोट कॉन्फ़िगरेशन चुनें.
  3. आपके तय किए गए पैरामीटर से मिलते-जुलते नाम वाले पैरामीटर तय करें आपका ऐप्लिकेशन. हर पैरामीटर के लिए, एक डिफ़ॉल्ट वैल्यू सेट की जा सकती है (जो और कंडीशनल वैल्यू को बदल देती है. इस बारे में ज़्यादा जानने के लिए, यह देखें रिमोट कॉन्फ़िगरेशन पैरामीटर और शर्तें.

पांचवां चरण: वैल्यू को फ़ेच और चालू करना (ज़रूरत के हिसाब से)

रिमोट कॉन्फ़िगरेशन बैकएंड से पैरामीटर वैल्यू फ़ेच करने के लिए, FetchAsync() तरीका. बैकएंड पर सेट की गई सभी वैल्यू फ़ेच की जाती हैं और रिमोट कॉन्फ़िगरेशन ऑब्जेक्ट में कैश मेमोरी में सेव किया जाता है.

// 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 इसके बाद यह तय किया जा सकता है कि फ़िनिश भी कामयाब रहा. अगर ऐसा है, तो इसके बाद, रिमोट कॉन्फ़िगरेशन की पैरामीटर वैल्यू को 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() को शुरू किया जाता है. इससे यह पक्का किया जा सकता है कि नई वैल्यू लागू नहीं हुई हैं गिनती के बीच में या कभी-कभी, जिससे समस्याएं आ सकती हैं या अजीब हो सकता है व्यवहार.

छठा चरण: रीयल टाइम में अपडेट सुनना

पैरामीटर वैल्यू फ़ेच करने के बाद, रीयल-टाइम रिमोट कॉन्फ़िगरेशन का इस्तेमाल करके रिमोट कॉन्फ़िगरेशन बैकएंड से अपडेट प्राप्त करें. रीयल-टाइम कनेक्ट किए गए डिवाइसों के लिए रिमोट कॉन्फ़िगरेशन सिग्नल इस्तेमाल करें. ऐसा तब करें, जब अपडेट उपलब्ध हों और नया रिमोट कॉन्फ़िगरेशन पब्लिश करने के बाद, बदलावों को अपने-आप फ़ेच कर लेता है वर्शन है.

रीयल-टाइम अपडेट, Firebase Unity SDK टूल v11.0.0 और इसके बाद के वर्शन पर काम करते हैं. इनके अलावा, ये अपडेट Android और Apple प्लैटफ़ॉर्म पर.

  1. अपने ऐप्लिकेशन में, अपडेट सुनने के लिए 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;
}

अगली बार आपके रिमोट कॉन्फ़िगरेशन का नया वर्शन पब्लिश करने पर, आपके ऐप्लिकेशन को चला रहे हैं और बदलावों को सुनने की वजह से, पूरे होने वाले हैंडलर को कॉल किया जाएगा.

अगले चरण

अगर आपने पहले से रिमोट कॉन्फ़िगरेशन को इस्तेमाल नहीं किया है, तो एक्सप्लोर करें इस्तेमाल के कुछ उदाहरण देखें और अहम सिद्धांतों और बेहतर रणनीतियों के दस्तावेज़ हैं. इनमें ये शामिल हैं: