Firebase Remote Config, Firebase Admin Node.js SDK के 12.1.0 या इसके बाद के वर्शन का इस्तेमाल करके, सर्वर-साइड कॉन्फ़िगरेशन के साथ काम करता है. इस सुविधा की मदद से, Remote Config का इस्तेमाल करके, सर्वर-साइड ऐप्लिकेशन के व्यवहार और कॉन्फ़िगरेशन को डाइनैमिक तरीके से मैनेज किया जा सकता है. इसमें Cloud Functions जैसे सर्वरलेस इंप्लीमेंटेशन शामिल हैं.
Firebase क्लाइंट एसडीके, Remote Config टेंप्लेट से हासिल किया गया क्लाइंट के हिसाब से कॉन्फ़िगरेशन फ़ेच करते हैं. हालांकि, सर्वर-साइड Remote Config एसडीके, Firebase से पूरा Remote Config टेंप्लेट डाउनलोड करता है. इसके बाद, आपका सर्वर हर अनुरोध के साथ टेंप्लेट का आकलन कर सकता है. साथ ही, बहुत कम समय में अपनी पसंद के मुताबिक जवाब देने के लिए, अपने लॉजिक का इस्तेमाल कर सकता है. कस्टम सिग्नल में तय किए गए क्लाइंट एट्रिब्यूट और रैंडम प्रतिशत के आधार पर, जवाबों को कंट्रोल और पसंद के मुताबिक बनाने के लिए, शर्तों का इस्तेमाल किया जा सकता है.
सर्वर-साइड Remote Config की मदद से, ये काम किए जा सकते हैं:
- अपने सर्वर पर चल रहे या उससे ऐक्सेस किए जा रहे ऐप्लिकेशन के लिए, कॉन्फ़िगरेशन पैरामीटर तय करें. इससे, दूर से ही एआई मॉडल के पैरामीटर और प्रॉम्प्ट कॉन्फ़िगर करने और अन्य इंटिग्रेशन जैसे इस्तेमाल के उदाहरणों को लागू किया जा सकता है. साथ ही, यह पक्का किया जा सकता है कि आपके एपीआई कुंजियां सुरक्षित रहें.
- अपने एनवायरमेंट या अन्य ऐप्लिकेशन में होने वाले बदलावों के हिसाब से, पैरामीटर में डाइनैमिक तरीके से बदलाव करना. जैसे, एलएलएम पैरामीटर और मॉडल एंडपॉइंट अपडेट करना.
- अपने सर्वर से कॉल किए जाने वाले एपीआई को दूर से अपडेट करके, लागत को कंट्रोल करें.
- आपके सर्वर को ऐक्सेस करने वाले क्लाइंट के लिए, तुरंत कस्टम कॉन्फ़िगरेशन जनरेट करें.
- यह कुकी, उन क्लाइंट का रिकॉर्ड करती है जिन्हें पैरामीटर वैल्यू मिली है. साथ ही, इसका इस्तेमाल Cloud Functions में, एनटाइटलमेंट की पुष्टि करने वाले सिस्टम के हिस्से के तौर पर करती है.
सर्वर साइड Remote Config को Cloud Run, Cloud Functions या खुद होस्ट किए गए सर्वर एनवायरमेंट पर डिप्लॉय किया जा सकता है.
शुरू करने से पहले
Firebase प्रोजेक्ट बनाने, सेवा खाता सेट अप करने, और अपने सर्वर में Firebase Admin Node.js SDK टूल जोड़ने के लिए, अपने सर्वर में Firebase Admin SDK टूल जोड़ें में दिए गए निर्देशों का पालन करें.
पहला चरण: Firebase Admin Node.js SDK टूल को शुरू करना और एपीआई अनुरोधों को अनुमति देना
जब बिना किसी पैरामीटर के Admin SDK को शुरू किया जाता है, तो एसडीके Google के ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करता है. साथ ही, GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल से विकल्प पढ़ता है. एसडीके टूल को शुरू करने और Remote Config जोड़ने के लिए:
import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";
// Initialize Firebase
const firebaseApp = initializeApp();
दूसरा चरण: अपने सर्वर ऐप्लिकेशन के लिए डिफ़ॉल्ट पैरामीटर वैल्यू की पहचान करना
अपने ऐप्लिकेशन में उन वैरिएबल की पहचान करें जिन्हें आपको Remote Config की मदद से डाइनैमिक तरीके से अपडेट करना है. इसके बाद, यह तय करें कि आपके ऐप्लिकेशन में कौनसे वैरिएबल डिफ़ॉल्ट रूप से सेट होने चाहिए और उनकी डिफ़ॉल्ट वैल्यू क्या होनी चाहिए. इससे यह पक्का होता है कि Remote Config बैकएंड सर्वर से कनेक्शन टूट जाने पर भी, आपका ऐप्लिकेशन ठीक से काम करता रहे.
उदाहरण के लिए, अगर आपको कोई ऐसा सर्वर ऐप्लिकेशन लिखना है जो जनरेटिव एआई फ़ंक्शन को मैनेज करता है, तो डिफ़ॉल्ट मॉडल का नाम, प्रॉम्प्ट प्रीऐंबल, और जनरेटिव एआई का कॉन्फ़िगरेशन सेट किया जा सकता है. जैसे:
| पैरामीटर का नाम | ब्यौरा | टाइप | डिफ़ॉल्ट वैल्यू |
|---|---|---|---|
model_name |
मॉडल के एपीआई का नाम | स्ट्रिंग | gemini-2.0-flash |
preamble_prompt
|
उपयोगकर्ता की क्वेरी से पहले जोड़ने के लिए प्रॉम्प्ट | स्ट्रिंग | I'm a
developer who
wants to learn
about Firebase and
you are a helpful
assistant who
knows everything
there is to know
about Firebase! |
generation_config
|
मॉडल को भेजे जाने वाले पैरामीटर | JSON |
{"stopSequences":
["I hope this
helps"],
"temperature":
0.7,
"maxOutputTokens":
512, "topP": 0.1,
"topK": 20} |
तीसरा चरण: सर्वर ऐप्लिकेशन को कॉन्फ़िगर करना
Remote Config के साथ इस्तेमाल किए जाने वाले पैरामीटर तय करने के बाद, अपने ऐप्लिकेशन को कॉन्फ़िगर करें. इससे डिफ़ॉल्ट वैल्यू सेट की जा सकेंगी, सर्वर के हिसाब से Remote Config टेंप्लेट फ़ेच किया जा सकेगा, और उसकी वैल्यू इस्तेमाल की जा सकेंगी. यहां Node.js ऐप्लिकेशन को कॉन्फ़िगर करने का तरीका बताया गया है.
टेंप्लेट ऐक्सेस करें और लोड करें.
// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = rc.initServerTemplate(); // Load Remote Config await template.load();अगर Cloud Functions में Node.js का इस्तेमाल किया जा रहा है, तो एक ही चरण में टेंप्लेट को शुरू करने और लोड करने के लिए, एसिंक्रोनस
getServerTemplateका इस्तेमाल किया जा सकता है:// Initialize server-side Remote Config const rc = getRemoteConfig(firebaseApp); const template = await rc.getServerTemplate();यह पक्का करने के लिए कि Remote Config बैकएंड सर्वर से कनेक्शन कट जाने पर भी आपका ऐप्लिकेशन ठीक से काम करे, अपने ऐप्लिकेशन में हर पैरामीटर के लिए डिफ़ॉल्ट वैल्यू जोड़ें. इसके लिए, अपने
initServerTemplateयाgetServerTemplateटेंप्लेट फ़ंक्शन मेंdefaultConfigजोड़ें:const template = rc.initServerTemplate({ defaultConfig: { model_name: "gemini-pro", generation_config: '{"stopSequences": [], "temperature": 0.7, "maxOutputTokens": 512, "topP": 0.1, "topK": 20}', preamble_prompt: "I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!" }, }); // Load Remote Config await template.load()टेंप्लेट लोड होने के बाद, टेंप्लेट से पैरामीटर और वैल्यू इंपोर्ट करने के लिए
template.evaluate()का इस्तेमाल करें:// Add template parameters to config const config = template.evaluate();अगर आपने Remote Config टेंप्लेट में शर्तें सेट की हैं, तो अपनी पसंद के मुताबिक वैल्यू तय करें और उन्हें डालें. हालांकि, ऐसा करना ज़रूरी नहीं है:
- अगर प्रतिशत की
शर्तें इस्तेमाल की जा रही हैं, तो
template.evaluate()फ़ंक्शन में, वहrandomizationIdजोड़ें जिसका इस्तेमाल आपको अपनी शर्तों का आकलन करने के लिए करना है. - अगर कस्टम सिग्नल का इस्तेमाल किया जा रहा है, तो एट्रिब्यूट और उनकी वैल्यू तय करें. कस्टम सिग्नल, Firebase Admin Node.js SDK 12.5.0 और इसके बाद के वर्शन पर उपलब्ध हैं.
उदाहरण के लिए, Firebase इंस्टॉलेशन आईडी को
randomizationIdया यूज़र आईडी के तौर पर सेट किया जा सकता है. इससे यह पक्का किया जा सकता है कि आपके सर्वर से संपर्क करने वाले हर उपयोगकर्ता को सही रैंडमाइज़्ड ग्रुप में जोड़ा जाए. साथ ही,versionको कस्टम सिग्नल के तौर पर सेट किया जा सकता है, ताकि क्लाइंट के खास वर्शन को टारगेट किया जा सके. इसके अलावा,platformको कस्टम सिग्नल के तौर पर सेट किया जा सकता है, ताकि क्लाइंट प्लैटफ़ॉर्म को टारगेट किया जा सके.शर्तों के बारे में ज़्यादा जानने के लिए, शर्त के नियम के टाइप देखें.
// Add template parameters to `config`. Evaluates the // template and returns the parameter value assigned to // the group assigned to the {randomizationId} and version. const config = template.evaluate({ randomizationId: "2ac93c28-c459-4760-963d-a3974ec26c04", version: "1.0", platform: "Android" });- अगर प्रतिशत की
शर्तें इस्तेमाल की जा रही हैं, तो
इसके बाद, कॉन्फ़िगरेशन कॉन्स्टेंट से अपनी ज़रूरत के पैरामीटर की वैल्यू निकालें.
gettersका इस्तेमाल करके, Remote Config से मिली वैल्यू को अनुमानित फ़ॉर्मैट में बदलें. इन टाइप का इस्तेमाल किया जा सकता है:- बूलियन:
getBoolean - ऑब्जेक्ट:
getValue - नंबर:
getNumber - स्ट्रिंग:
getString
उदाहरण के लिए, अगर आपको अपने सर्वर पर Agent Platform लागू करना है और मॉडल और मॉडल पैरामीटर बदलने हैं, तो आपको
model_nameऔरgeneration_configके लिए पैरामीटर कॉन्फ़िगर करने पड़ सकते हैं. Remote Config की वैल्यू को ऐक्सेस करने का तरीका यहां दिया गया है:// Replace defaults with values from Remote Config. const generationConfig = JSON.parse( config.getString('generation_config')); const is_ai_enabled = config.getBool('is_ai_enabled'); const model = config.getString('model_name'); // Generates a prompt comprised of the Remote Config // parameter and prepends it to the user prompt const prompt = `${config.getString('preamble_prompt')} ${req.query.prompt}`;- बूलियन:
अगर आपका सर्वर, सर्वरलेस एनवायरमेंट के बजाय लंबे समय तक चलता है, तो
setIntervalका इस्तेमाल करके टेंप्लेट को समय-समय पर फिर से लोड करें. इससे यह पुष्टि की जा सकेगी कि Remote Config सर्वर से सबसे नया टेंप्लेट फ़ेच किया जा रहा है.
चौथा चरण: Remote Config में सर्वर के हिसाब से पैरामीटर वैल्यू सेट करना
इसके बाद, सर्वर Remote Config टेंप्लेट बनाएं. साथ ही, अपने ऐप्लिकेशन में इस्तेमाल करने के लिए पैरामीटर और वैल्यू कॉन्फ़िगर करें.
सर्वर के हिसाब से Remote Config टेंप्लेट बनाने का तरीका यहां बताया गया है:
Firebase console में, DevOps और जुड़ाव > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं.
पेज पर सबसे ऊपर मौजूद, क्लाइंट/सर्वर सिलेक्टर से, सर्वर चुनें.
अपने ऐप्लिकेशन में तय किए गए पैरामीटर के नाम और डेटा टाइप के हिसाब से, Remote Config पैरामीटर तय करें और उनकी वैल्यू दें. जब टेंप्लेट को फ़ेच और उसका आकलन किया जाता है और इन वैल्यू को अपने वैरिएबल को असाइन किया जाता है, तब ये वैल्यू, अपने सर्वर ऐप्लिकेशन को कॉन्फ़िगर करें में सेट की गई
defaultConfigको बदल देंगी.इसके अलावा, उन शर्तों को सेट करें जिनके तहत, आपके तय किए गए इंस्टेंस या कस्टम सिग्नल के रैंडम सैंपल पर वैल्यू लगातार लागू की जाएंगी. शर्तों के बारे में ज़्यादा जानकारी के लिए, शर्त वाले नियम के टाइप देखें.
पैरामीटर जोड़ने के बाद, बदलाव पब्लिश करें पर क्लिक करें.
बदलावों की समीक्षा करें और फिर से बदलाव पब्लिश करें पर क्लिक करें.
पांचवां चरण: Cloud Functions या Cloud Run की मदद से डिप्लॉय करना
अगर आपका सर्वर ऐप्लिकेशन हल्का है और इवेंट पर आधारित है, तो आपको Cloud Functions का इस्तेमाल करके अपना कोड डिप्लॉय करना चाहिए. उदाहरण के लिए, मान लें कि आपके पास एक ऐसा ऐप्लिकेशन है जिसमें जनरेटिव एआई एपीआई (जैसे, Google AI या Agent Platform) की मदद से, किरदार के डायलॉग जनरेट किए जाते हैं. इस मामले में, एलएलएम को सेवा देने वाले लॉजिक को ऐसे फ़ंक्शन में होस्ट किया जा सकता है जिसे आपका ऐप्लिकेशन ज़रूरत के हिसाब से कॉल करता है.
सर्वर-साइड Remote Config के साथ 2nd gen Cloud Functions का इस्तेमाल करने वाले समाधान के बारे में जानने के लिए, Cloud Functions और Agent Platform के साथ सर्वर-साइड Remote Config का इस्तेमाल करना लेख पढ़ें.
Cloud Functions की मदद से ऐप्लिकेशन डिप्लॉय करने के बारे में ज़्यादा जानने के लिए, शुरू करें: अपने पहले फ़ंक्शन लिखें, उन्हें टेस्ट करें, और डिप्लॉय करें लेख पढ़ें.
सर्वर-साइड Remote Config और App Check के साथ कॉल किए जा सकने वाले फ़ंक्शन का सैंपल आज़माएं. इसके लिए, Remote Config और App Check के साथ Agent Platform Gemini API (formerly Vertex AI) को कॉल करें.
अगर आपको सर्वर-रेंडर किया गया वेब ऐप्लिकेशन बनाना है, तो App Hosting में लोकप्रिय वेब फ़्रेमवर्क के लिए सहायता उपलब्ध है.
इसके अलावा, Cloud Run का इस्तेमाल किया जा सकता है. Cloud Run की मदद से सर्वर ऐप्लिकेशन डिप्लॉय करने के लिए, क्विकस्टार्ट: Cloud Run पर Node.js सेवा डिप्लॉय करना पर दी गई गाइड पढ़ें.
Cloud Run और Cloud Functions के सबसे सही इस्तेमाल के उदाहरणों के बारे में ज़्यादा जानने के लिए, Cloud Functions बनाम Cloud Run: किसका इस्तेमाल कब करें लेख पढ़ें.
देखें.