रिमोट कॉन्फ़िगरेशन पैरामीटर और शर्तें


क्लाइंट और सर्वर, दोनों के इस्तेमाल के उदाहरणों के लिए टेंप्लेट कॉन्फ़िगर किए जा सकते हैं. क्लाइंट टेंप्लेट, उन सभी ऐप्लिकेशन इंस्टेंस को दिखाए जाते हैं जिनमें Remote Config के लिए Firebase क्लाइंट SDK टूल लागू किए गए हैं. इनमें Android, Apple, वेब, Unity, Flutter, और C++ ऐप्लिकेशन शामिल हैं. Remote Config पैरामीटर और वैल्यू, सर्वर के हिसाब से बनाए गए टेंप्लेट से Remote Config लागू करने की प्रोसेस में इस्तेमाल की जाती हैं. इनमें Cloud Run और Cloud Functions शामिल हैं. ये सर्वर एनवायरमेंट का इस्तेमाल करते हैं:

  • Firebase Admin Node.js SDK v12.1.0 या इसके बाद का वर्शन
  • Firebase Admin Python SDK v6.7.0 या इसके बाद का वर्शन
  • Firebase Admin Go SDK v4.17.0+
  • Firebase Admin Java SDK v9.7.0 या इसके बाद का वर्शन

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

Firebase कंसोल, Admin SDK या Remote Config REST API का इस्तेमाल करके, अपने पैरामीटर के लिए नई डिफ़ॉल्ट वैल्यू बनाई जा सकती हैं. साथ ही, ऐसी वैल्यू भी बनाई जा सकती हैं जिनका इस्तेमाल, ऐप्लिकेशन इंस्टेंस के ग्रुप को टारगेट करने के लिए किया जाता है. Firebase कंसोल में कॉन्फ़िगरेशन अपडेट करने पर, Firebase आपके Remote Config टेंप्लेट का नया वर्शन बनाता है और उसे पब्लिश करता है. पिछला वर्शन सेव रहता है. इससे आपको ज़रूरत के मुताबिक, उसे वापस लाने या रोलबैक करने की सुविधा मिलती है. ये कार्रवाइयां, Firebase कंसोल, Firebase Admin SDK, और REST API में उपलब्ध हैं. इनके बारे में ज़्यादा जानकारी, Remote Config टेंप्लेट के वर्शन मैनेज करना लेख में दी गई है.

इस गाइड में पैरामीटर, शर्तें, नियम, शर्त के हिसाब से वैल्यू, और Remote Config बैकएंड और आपके ऐप्लिकेशन में अलग-अलग पैरामीटर वैल्यू को प्राथमिकता देने के तरीके के बारे में बताया गया है. इसमें, शर्तें बनाने के लिए इस्तेमाल किए जाने वाले नियमों के टाइप के बारे में भी जानकारी दी गई है.

शर्तें, नियम, और शर्त के साथ वैल्यू

शर्त का इस्तेमाल, ऐप्लिकेशन इंस्टेंस के ग्रुप को टारगेट करने के लिए किया जाता है. शर्तें, एक या उससे ज़्यादा नियमों से बनी होती हैं. किसी ऐप्लिकेशन इंस्टेंस के लिए, शर्त को true के तौर पर आंकने के लिए, सभी नियमों का आकलन true के तौर पर किया जाना चाहिए. अगर किसी नियम की वैल्यू तय नहीं की गई है (उदाहरण के लिए, जब कोई वैल्यू उपलब्ध नहीं होती है), तो उस नियम का आकलन false के तौर पर किया जाएगा.

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

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

आईपीवी6 के साथ आईपी पते के आधार पर ऐक्सेस कंट्रोल की सुविधा का इस्तेमाल करने से जुड़ी सीमाएं

Remote Config का इस्तेमाल, आईपी पते के आधार पर ऐक्सेस करने की नीतियां लागू करने के लिए किया जाता है. हालांकि, IPv6 के साथ इसका इस्तेमाल सीमित तौर पर किया जा सकता है. अगर आपका संगठन, कुछ सार्वजनिक आईपी पतों की रेंज को ऐक्सेस करने पर पाबंदी लगाता है, तो IPv6 नेटवर्क से कनेक्ट करने पर ये समस्याएं हो सकती हैं:

  • कंसोल ऐक्सेस: ऐसा हो सकता है कि Firebase कंसोल में, Remote Config की कुछ सुविधाओं का इस्तेमाल न किया जा सके. जैसे, डेटा लोड करना या टारगेटिंग सेट अप करना.
  • क्लाइंट ऐक्सेस: क्लाइंट ऐप्लिकेशन को PERMISSION_DENIED गड़बड़ियां मिल सकती हैं.

इन समस्याओं से बचने के लिए, हमारा सुझाव है कि आप अपने नेटवर्क को IPv4 का इस्तेमाल करने के लिए कॉन्फ़िगर करें या अपने संगठन की अनुमति वाली सूची में, Firebase की ज़रूरी आईपी रेंज जोड़ें.

पैरामीटर वैल्यू की प्राथमिकता

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

यहां दिए गए नियमों से यह तय होता है कि टेंप्लेट का आकलन करते समय, किसी खास समय पर कौनसी वैल्यू असाइन की जाएगी:

  1. सबसे पहले, शर्तों के हिसाब से वैल्यू लागू की जाती हैं. ये वैल्यू, क्लाइंट के किसी अनुरोध के लिए true के तौर पर तय की गई शर्तों के हिसाब से लागू होती हैं. अगर कई शर्तों का आकलन true के तौर पर किया जाता है, तो true कंसोल के यूज़र इंटरफ़ेस (यूआई) में सबसे ऊपर दिखने वाली शर्त को प्राथमिकता दी जाती है. साथ ही, टेंप्लेट का आकलन करते समय, उस शर्त से जुड़ी वैल्यू दी जाती हैं.Firebase शर्तें पेज पर जाकर, शर्तों को खींचें और छोड़ें. इससे शर्तों की प्राथमिकता बदली जा सकती है.

  2. अगर ऐसी कोई शर्त वाली वैल्यू नहीं है जिसकी शर्तें true के बराबर हों, तो टेंप्लेट का आकलन करते समय Remote Config की डिफ़ॉल्ट वैल्यू दी जाती है. अगर कोई पैरामीटर टेंप्लेट में मौजूद नहीं है या डिफ़ॉल्ट वैल्यू को ऐप्लिकेशन में मौजूद डिफ़ॉल्ट वैल्यू का इस्तेमाल करें पर सेट किया गया है, तो टेंप्लेट का आकलन करते समय उस पैरामीटर के लिए कोई वैल्यू नहीं दी जाती है.

सर्वर ऐप्लिकेशन में Remote Config टेंप्लेट लोड करने और उनका आकलन करने के बारे में ज़्यादा जानने के लिए, सर्वर एनवायरमेंट में Remote Config का इस्तेमाल करना लेख पढ़ें.

पैरामीटर वैल्यू के डेटा टाइप

Remote Config की मदद से, हर पैरामीटर के लिए डेटा टाइप चुना जा सकता है. साथ ही, यह टेंप्लेट अपडेट करने से पहले, उस टाइप के हिसाब से Remote Config की सभी वैल्यू की पुष्टि करता है. डेटा टाइप को सेव किया जाता है और getRemoteConfig अनुरोध पर वापस भेजा जाता है.

इन डेटा टाइप का इस्तेमाल किया जा सकता है:

  • String
  • Boolean
  • Number
  • JSON

Firebase कंसोल के यूज़र इंटरफ़ेस (यूआई) में, पैरामीटर की के बगल में मौजूद ड्रॉप-डाउन से डेटा टाइप चुना जा सकता है. REST API में, पैरामीटर ऑब्जेक्ट में मौजूद value_type फ़ील्ड का इस्तेमाल करके टाइप सेट किए जा सकते हैं.

पैरामीटर ग्रुप

Remote Config की मदद से, पैरामीटर को एक साथ ग्रुप किया जा सकता है. इससे यूज़र इंटरफ़ेस (यूआई) ज़्यादा व्यवस्थित दिखता है और इस्तेमाल करना आसान हो जाता है.

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

Firebase कंसोल या Remote Config REST API का इस्तेमाल करके, पैरामीटर ग्रुप बनाए जा सकते हैं. आपके बनाए गए हर पैरामीटर ग्रुप का नाम, आपके Remote Config टेंप्लेट में अलग होना चाहिए. पैरामीटर ग्रुप बनाते समय, इन बातों का ध्यान रखें:

  • पैरामीटर को एक समय पर सिर्फ़ एक ग्रुप में शामिल किया जा सकता है. साथ ही, पैरामीटर की कुंजी सभी पैरामीटर के लिए अलग-अलग होनी चाहिए.
  • पैरामीटर ग्रुप के नाम में ज़्यादा से ज़्यादा 256 वर्ण इस्तेमाल किए जा सकते हैं.
  • अगर REST API और Firebase कंसोल, दोनों का इस्तेमाल किया जाता है, तो पक्का करें कि पब्लिश करने पर पैरामीटर ग्रुप को मैनेज करने के लिए, REST API के लॉजिक को अपडेट किया गया हो.

Firebase console का इस्तेमाल करके, पैरामीटर ग्रुप बनाना या उनमें बदलाव करना

Firebase कंसोल में पैरामीटर को ग्रुप किया जा सकता है. यहां ग्रुप बनाने या उसमें बदलाव करने का तरीका बताया गया है:

  1. Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > Remote Config > पैरामीटर पेज पर जाएं.
  2. ग्रुप मैनेज करें को चुनें.
  3. उन पैरामीटर के लिए चेकबॉक्स चुनें जिन्हें आपको जोड़ना है. इसके बाद, ग्रुप में ले जाएं को चुनें.
  4. कोई मौजूदा ग्रुप चुनें या नाम और जानकारी डालकर नया ग्रुप बनाएं. इसके बाद, नया ग्रुप बनाएं को चुनें. किसी ग्रुप को सेव करने के बाद, उसे बदलाव पब्लिश करें बटन का इस्तेमाल करके पब्लिश किया जा सकता है.

शर्त वाले नियम के टाइप

सर्वर ऐप्लिकेशन के लिए Remote Config टेंप्लेट, यहां दी गई शर्तों के साथ काम करते हैं:

उपयोगकर्ता को रैंडम प्रतिशत में बांटना

इस फ़ील्ड का इस्तेमाल करके, ऐप्लिकेशन इंस्टेंस के रैंडम सैंपल में बदलाव करें. सैंपल का साइज़ .0001% जितना छोटा हो सकता है. इसके लिए, स्लाइडर विजेट का इस्तेमाल करके, उपयोगकर्ताओं (ऐप्लिकेशन इंस्टेंस) को रैंडम तरीके से अलग-अलग ग्रुप में बांटा जाता है.

हर ऐप्लिकेशन इंस्टेंस को, उस प्रोजेक्ट में तय किए गए सीड के हिसाब से, किसी भी पूर्णांक या भिन्न संख्या पर लगातार मैप किया जाता है.

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

अगर आपको दिए गए प्रतिशत की रेंज में, एक ही ऐप्लिकेशन इंस्टेंस को लगातार टारगेट करना है, तो सभी शर्तों के लिए एक ही सीड वैल्यू का इस्तेमाल करें. इसके अलावा, किसी नई सीड को तय करके, ऐप्लिकेशन इंस्टेंस के रैंडम तरीके से असाइन किए गए नए ग्रुप को चुनें. ऐसा किसी तय प्रतिशत सीमा के लिए किया जा सकता है.

उदाहरण के लिए, अगर आपको दो ऐसी शर्तें बनानी हैं जो ऐप्लिकेशन के 5% उपयोगकर्ताओं पर लागू हों और दोनों शर्तें एक-दूसरे से अलग हों, तो एक शर्त को 0% से 5% के बीच के प्रतिशत से मैच करने के लिए कॉन्फ़िगर करें. इसके बाद, दूसरी शर्त को 5% से 10% के बीच की रेंज से मैच करने के लिए कॉन्फ़िगर करें. अगर आपको कुछ उपयोगकर्ताओं को दोनों ग्रुप में रैंडम तरीके से शामिल करना है, तो हर शर्त में मौजूद नियमों के लिए अलग-अलग सीड वैल्यू का इस्तेमाल करें.

अपने ऐप्लिकेशन में रैंडम प्रतिशत की शर्तें जोड़ने का तरीका जानने के लिए, सर्वर ऐप्लिकेशन कॉन्फ़िगर करना लेख पढ़ें.

कस्टम सिग्नल की शर्तें

कस्टम सिग्नल की शर्तों के साथ वैल्यू का इस्तेमाल करके, अपने ऐप्लिकेशन में तय की गई किसी भी शर्त को पूरा किया जा सकता है. इससे आपको हर क्लाइंट के अनुरोध के लिए, सर्वर के जवाब को अपनी ज़रूरत के हिसाब से बनाने में मदद मिलती है. कस्टम सिग्नल की शर्तें, सर्वर एनवायरमेंट के इन वर्शन के साथ काम करती हैं:

  • Firebase Admin Node.js SDK v12.1.0 या इसके बाद का वर्शन
  • Firebase Admin Python SDK v6.7.0 या इसके बाद का वर्शन
  • Firebase Admin Go SDK v4.17.0+
  • Firebase Admin Java SDK v9.7.0 या इसके बाद का वर्शन

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

  1. अपने Remote Config सर्वर टेंप्लेट में prompt और model_name पैरामीटर जोड़ें.
  2. आपको जिस प्लैटफ़ॉर्म को टारगेट करना है उसके लिए, platform वैल्यू के साथ कस्टम सिग्नल की शर्तें जोड़ें.
  3. अपने सर्वर के हिसाब से बनाए गए Remote Config टेंप्लेट में डिफ़ॉल्ट वैल्यू जोड़ें. साथ ही, हर प्लैटफ़ॉर्म की उस शर्त के लिए वैल्यू जोड़ें जिसे आपने तय किया है.
  4. platform कस्टम सिग्नल को सेट और इस्तेमाल करने के लिए, अपने ऐप्लिकेशन कोड को अपडेट करें.

अब आपका ऐप्लिकेशन, टेंप्लेट के आकलन के दौरान सही प्रॉम्प्ट और मॉडल को निकाल सकता है. साथ ही, इनका इस्तेमाल करके हर क्लाइंट को उनकी पसंद के मुताबिक जवाब दे सकता है.

Firebase कंसोल में कस्टम सिग्नल की शर्तें बनाने के लिए, यहां दिए गए नियम टाइप का इस्तेमाल किया जा सकता है.

ऑपरेटर की कैटगरी ऑपरेटर मान ध्यान दें
टेक्स्ट पूरी तरह से मैच करता है, इसमें शामिल है, इसमें शामिल नहीं है, इसमें रेगुलर एक्सप्रेशन शामिल है

इस नियम के लिए स्ट्रिंग की तुलना करना केस-सेंसिटिव होता है. पूरी तरह मेल खाने वाले, इसमें शामिल है, इसमें शामिल नहीं है या रेगुलर एक्सप्रेशन शामिल है ऑपरेटर का इस्तेमाल करते समय, एक से ज़्यादा वैल्यू चुनी जा सकती हैं.

रेगुलर एक्सप्रेशन शामिल है ऑपरेटर का इस्तेमाल करते समय, RE2 फ़ॉर्मैट में रेगुलर एक्सप्रेशन बनाए जा सकते हैं. आपका रेगुलर एक्सप्रेशन, टारगेट वर्शन स्ट्रिंग के सभी या कुछ हिस्से से मैच कर सकता है. ^ और $ ऐंकर का इस्तेमाल करके, टारगेट स्ट्रिंग की शुरुआत, आखिर या पूरे हिस्से को मैच किया जा सकता है.

संख्याएं <, <=, =, !=, >, >= दशमलव बिंदु के दोनों ओर ज़्यादा से ज़्यादा दस अंक वाली संख्या.
वर्शन <, <=, =, !=, >, >= यह संख्या, मैच करने के लिए वर्शन नंबर दिखाती है. उदाहरण के लिए, 2.1.0.

अपने ऐप्लिकेशन में कस्टम सिग्नल जोड़ने का तरीका जानने के लिए, अपने सर्वर ऐप्लिकेशन को कॉन्फ़िगर करें लेख पढ़ें.

खोज के पैरामीटर और शर्तें

Firebase कंसोल में जाकर, अपने प्रोजेक्ट के पैरामीटर की, पैरामीटर वैल्यू, और शर्तों को खोजा जा सकता है. इसके लिए, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर सबसे ऊपर मौजूद खोज बॉक्स का इस्तेमाल करें.

पैरामीटर और शर्तों की सीमाएं

किसी Firebase प्रोजेक्ट में, ज़्यादा से ज़्यादा 3,000 पैरामीटर और 2,000 शर्तें हो सकती हैं. पैरामीटर की कुंजियां 256 वर्णों तक हो सकती हैं. इनकी शुरुआत अंडरस्कोर या अंग्रेज़ी के अक्षर (A-Z, a-z) से होनी चाहिए. इनमें संख्याएं भी शामिल हो सकती हैं. किसी प्रोजेक्ट में पैरामीटर वैल्यू स्ट्रिंग की कुल लंबाई 10,00,000 वर्णों से ज़्यादा नहीं हो सकती.

पैरामीटर और शर्तों में हुए बदलाव देखना

Firebase कंसोल में जाकर, अपने Remote Config टेंप्लेट में हुए नए बदलाव देखे जा सकते हैं. हर पैरामीटर और शर्त के लिए, ये काम किए जा सकते हैं:

  • उस उपयोगकर्ता का नाम देखें जिसने पैरामीटर या शर्त में आखिरी बार बदलाव किया था.

  • अगर बदलाव उसी दिन हुआ है, तो देखें कि बदलाव को ऐक्टिव Remote Config टेंप्लेट में पब्लिश किए हुए कितने मिनट या घंटे हो गए हैं.

  • अगर बदलाव एक या उससे ज़्यादा दिन पहले हुआ था, तो उस तारीख को देखें जब बदलाव को चालू Remote Config टेंप्लेट में पब्लिश किया गया था.

पैरामीटर के बदलाव का इतिहास

Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं. आखिरी बार पब्लिश किया गया कॉलम में, हर पैरामीटर में बदलाव करने वाले आखिरी उपयोगकर्ता का नाम दिखता है. साथ ही, बदलाव को आखिरी बार पब्लिश करने की तारीख भी दिखती है:

  • ग्रुप किए गए पैरामीटर के लिए बदलाव का मेटाडेटा देखने के लिए, पैरामीटर ग्रुप को बड़ा करें.

  • पब्लिश करने की तारीख के हिसाब से बढ़ते या घटते क्रम में लगाने के लिए, पिछली बार पब्लिश किया गया कॉलम के लेबल पर क्लिक करें.

शर्तों के बदलाव का इतिहास

Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > शर्तें पेज पर जाएं. आपको हर शर्त के नीचे, बदलाव की आखिरी तारीख के बगल में, उस उपयोगकर्ता का नाम दिखेगा जिसने शर्त में आखिरी बार बदलाव किया था. साथ ही, बदलाव की तारीख भी दिखेगी.

अगले चरण

Remote Config का इस्तेमाल करने के लिए, अपने Firebase प्रोजेक्ट और सर्वर ऐप्लिकेशन को कॉन्फ़िगर करने के लिए, सर्वर एनवायरमेंट में Remote Config का इस्तेमाल करना लेख पढ़ें.