सर्वर एनवायरमेंट में रिमोट कॉन्फ़िगरेशन का इस्तेमाल करना

Firebase Remote Config, Node.js (v12.1.0+), Python (v6.7.0+), Java (v9.7.0+), और Go (v4.17.0+) के लिए Firebase Admin SDK टूल का इस्तेमाल करके, सर्वर-साइड कॉन्फ़िगरेशन की सुविधा देता है.

इस सुविधा की मदद से, Remote Config का इस्तेमाल करके सर्वर साइड ऐप्लिकेशन के व्यवहार और कॉन्फ़िगरेशन को डाइनैमिक तरीके से मैनेज किया जा सकता है. इसमें Cloud Functions for Firebase जैसे सर्वरलेस इंप्लिमेंटेशन और Cloud Run पर कंटेनर वाली सेवाएं शामिल हैं.

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

सर्वर-साइड Remote Config की मदद से, ये काम किए जा सकते हैं:

  • अपने सर्वर पर चलने वाले या उसके ज़रिए ऐक्सेस किए जाने वाले ऐप्लिकेशन के लिए, कॉन्फ़िगरेशन पैरामीटर तय करें. इससे एआई मॉडल के पैरामीटर और प्रॉम्प्ट को रिमोटली कॉन्फ़िगर करने और अन्य इंटिग्रेशन जैसे इस्तेमाल के उदाहरणों को लागू करने में मदद मिलती है. इससे यह पक्का किया जा सकता है कि आपके एपीआई पासकोड सुरक्षित रहें.
  • अपने एनवायरमेंट में होने वाले बदलावों या ऐप्लिकेशन में होने वाले अन्य बदलावों के हिसाब से, पैरामीटर में डाइनैमिक तौर पर बदलाव करें. जैसे, एलएलएम पैरामीटर और मॉडल एंडपॉइंट अपडेट करना.
  • आपका सर्वर जिन एपीआई को कॉल करता है उन्हें रिमोट तरीके से अपडेट करके, लागत को कंट्रोल करें.
  • आपके सर्वर को ऐक्सेस करने वाले क्लाइंट के लिए, तुरंत कस्टम कॉन्फ़िगरेशन जनरेट करना.
  • यह रिकॉर्ड करना कि किन क्लाइंट को पैरामीटर वैल्यू मिली है. साथ ही, इसका इस्तेमाल Cloud Functions for Firebase में, एनटाइटलमेंट की पुष्टि करने वाले सिस्टम के हिस्से के तौर पर करना.

सर्वर-साइड Remote Config को Cloud Run, Cloud Functions for Firebase या खुद होस्ट किए गए सर्वर एनवायरमेंट पर डिप्लॉय किया जा सकता है.

शुरू करने से पहले

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

  • Node.js: Firebase Admin Node.js SDK v12.1.0+
  • Python: Firebase Admin Python SDK v6.7.0+
  • Java: Firebase Admin Java SDK v9.7.0+
  • Go: Firebase Admin Go SDK v4.17.0+

पहला चरण: Firebase Admin SDK टूल को शुरू करना और एपीआई अनुरोधों को अनुमति देना

जब Admin SDK को बिना किसी पैरामीटर के शुरू किया जाता है, तो SDK टूल Google ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करता है. साथ ही, GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल से विकल्प पढ़ता है. एसडीके टूल को शुरू करें और अपने प्लैटफ़ॉर्म के लिए Remote Config को कॉन्फ़िगर करें:

Node.js

initializeApp और getRemoteConfig इंपोर्ट करें. इसके बाद, अपने Firebase ऐप्लिकेशन इंस्टेंस को शुरू करें:

import { initializeApp } from "firebase-admin/app";
import { getRemoteConfig } from "firebase-admin/remote-config";

// Initialize Firebase
const firebaseApp = initializeApp();

Python

firebase_admin को इंपोर्ट करें (एसिंक्रोनस टेंप्लेट लोड करने और JSON पार्स करने के लिए, asyncio और json के साथ), फिर ऐप्लिकेशन को शुरू करें:

import firebase_admin
import asyncio
import json

firebase_admin.initialize_app()

Java

FirebaseOptions और अपने सेवा खाते के क्रेडेंशियल का इस्तेमाल करके, Firebase Admin SDK टूल को शुरू करें:

// Initialize the Firebase Admin SDK
FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .build();
FirebaseApp.initializeApp(options);

जाएं

Firebase ऐप्लिकेशन को शुरू करें और RemoteConfig क्लाइंट इंस्टेंस बनाएं:

ctx := context.Background()

// Initialize Firebase
app, err := firebase.NewApp(ctx, nil)
if err != nil {
    log.Fatalln("Error initializing app:", err)
}

remoteConfig, err := app.RemoteConfig(ctx)
if err != nil {
    log.Fatalln("Error initializing remote config client:", err)
}

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

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

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

पैरामीटर का नाम ब्यौरा टाइप डिफ़ॉल्ट वैल्यू
model_name मॉडल एपीआई का नाम स्ट्रिंग gemini-3.8-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"], "maxOutputTokens": 512}

तीसरा चरण: अपने सर्वर ऐप्लिकेशन को कॉन्फ़िगर करना

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

  1. Remote Config सर्वर टेंप्लेट को ऐक्सेस और लोड करें.

    Node.js

    initServerTemplate() का इस्तेमाल करके सर्वर टेंप्लेट को शुरू करें और बैकएंड से टेंप्लेट फ़ेच करने के लिए load() को कॉल करें:

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = rc.initServerTemplate();
    
    // Load Remote Config
    await template.load();
    

    अगर Cloud Functions for Firebase में Node.js का इस्तेमाल किया जा रहा है, तो एसिंक्रोनस getServerTemplate() फ़ंक्शन का इस्तेमाल करके, टेंप्लेट को एक ही चरण में शुरू और लोड किया जा सकता है:

    // Initialize server-side Remote Config
    const rc = getRemoteConfig(firebaseApp);
    const template = await rc.getServerTemplate();
    

    Python

    init_server_template() का इस्तेमाल करके सर्वर टेंप्लेट को शुरू करें और बैकएंड से टेंप्लेट फ़ेच करने के लिए load() को कॉल करें:

    from firebase_admin import remote_config
    
    # Initialize server-side Remote Config
    template = remote_config.init_server_template()
    
    # Load the template from the backend
    asyncio.run(template.load())
    

    इसके अलावा, अगर Cloud Functions for Firebase के साथ Python का इस्तेमाल किया जा रहा है, तो एसिंक्रोनस get_server_template() फ़ंक्शन का इस्तेमाल करके, टेंप्लेट को एक ही चरण में शुरू और लोड किया जा सकता है:

    # Initialize server-side Remote Config
    template = await remote_config.get_server_template()
    

    Java

    FirebaseRemoteConfig.getInstance() का इस्तेमाल करके, सर्वर-साइड Remote Config क्लाइंट को शुरू करें:

    // Initialize server-side Remote Config client
    FirebaseRemoteConfig rc = FirebaseRemoteConfig.getInstance();
    

    इसके अलावा, अगर Cloud Functions for Firebase के साथ Java का इस्तेमाल किया जा रहा है, तो getServerTemplate() का इस्तेमाल करके, टेंप्लेट को एक ही चरण में शुरू और लोड किया जा सकता है:

    ServerTemplate template = rc.getServerTemplate();
    

    जाएं

    InitServerTemplate() का इस्तेमाल करके सर्वर टेंप्लेट को शुरू करें और बैकएंड से टेंप्लेट फ़ेच करने के लिए Load() को कॉल करें:

    // Initialize server-side Remote Config
    defaultConfig := make(map[string]any)
    templateDataJSON := ""
    template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON)
    if err != nil {
        log.Fatalln("Error initializing server template:", err)
    }
    
    // Load Remote Config
    err = template.Load(ctx)
    if err != nil {
        log.Fatalln("Error fetching server template:", err)
    }
    

    टेंप्लेट को शुरू करने का दूसरा तरीका यह है कि ज़रूरी सर्वर टेंप्लेट को वापस पाने के लिए, GetServerTemplate फ़ंक्शन का इस्तेमाल किया जाए. इस टेंप्लेट को JSON फ़ॉर्मैट में बदला जा सकता है, ताकि इसे डिवाइस में सेव किया जा सके. इसके बाद, InitServerTemplate फ़ंक्शन का इस्तेमाल करके, इस JSON टेंप्लेट को शुरू किया जा सकता है.

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

    Node.js

    अपने initServerTemplate या getServerTemplate टेंप्लेट फ़ंक्शन में defaultConfig ऑब्जेक्ट जोड़ें:

    const template = rc.initServerTemplate({
      defaultConfig: {
        model_name: "gemini-3.8-flash",
        generation_config: '{"stopSequences": [], "maxOutputTokens": 512}',
        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();
    

    Python

    init_server_template या get_server_template टेंप्लेट फ़ंक्शन में default_config डिक्शनरी जोड़ें:

    template = remote_config.init_server_template({
      'default_config': {
        'model_name': "gemini-3.8-flash",
        'generation_config': '{"stopSequences": [], "maxOutputTokens": 512}',
        '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
    asyncio.run(template.load())
    

    टेंप्लेट को शुरू करने का दूसरा तरीका यह है कि ज़रूरी सर्वर टेंप्लेट को वापस पाने के लिए, get_server_template फ़ंक्शन का इस्तेमाल किया जाए. template.to_json फ़ंक्शन का इस्तेमाल करके, इस टेंप्लेट को JSON फ़ॉर्मैट में बदला जा सकता है. इस JSON टेंप्लेट को स्थानीय तौर पर सेव किया जा सकता है. इसके बाद, init_server_template फ़ंक्शन का इस्तेमाल करके, इस JSON टेंप्लेट को शुरू किया जा सकता है.

    Java

    अपने getServerTemplate फ़ंक्शन में, KeysAndValues का इस्तेमाल करके defaultConfig ऑब्जेक्ट जोड़ें:

    // Initialize default config using KeysAndValues
    KeysAndValues defaultConfig = new KeysAndValues.Builder()
                                      .put("rc_param_1", "default value 1")
                                      .put("rc_param_2", "default value 2")
                                      .build();
    ServerTemplate template = rc.getServerTemplate(defaultConfig);
    

    इसके अलावा, Remote Config को शुरू करते समय, डिफ़ॉल्ट रूप से कैश मेमोरी में सेव किया गया टेंप्लेट पास किया जा सकता है. इसका इस्तेमाल तब भी किया जा सकता है, जब Remote Config सर्वर से कनेक्शन टूट जाए:

    String templateDataJSON = "{}"; // add your default template as JSON
    ServerTemplate template = rc.serverTemplateBuilder()
                        .defaultConfig(defaultConfig)
                        .cachedTemplate(templateDataJSON)
                        .build();
    

    जाएं

    अपने InitServerTemplate या GetServerTemplate टेंप्लेट फ़ंक्शन में defaultConfig मैप जोड़ें:

    // Initialize server-side Remote Config
    defaultConfig := make(map[string]any)
    defaultConfig["model_name"] = "gemini-3.8-flash"
    
    // Assume the type generationConfig has been defined
    defaultConfig["generation_config"] = &generationConfig{
        StopSequences:   []string{"I hope this helps"},
        MaxOutputTokens: 512,
    }
    
    defaultConfig["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!"
    
    templateDataJSON := ""
    template, err := remoteConfig.InitServerTemplate(defaultConfig, templateDataJSON)
    if err != nil {
        log.Fatalln("Error initializing server template:", err)
    }
    
    // Load Remote Config
    err = template.Load(ctx)
    if err != nil {
        log.Fatalln("Error fetching server template:", err)
    }
    
  3. टेंप्लेट लोड होने के बाद, टेंप्लेट से पैरामीटर और वैल्यू इंपोर्ट करने के लिए, टेंप्लेट का आकलन करें:

    Node.js

    template.evaluate() का इस्तेमाल करें:

    // Add template parameters to config
    const config = template.evaluate();
    

    Python

    template.evaluate() का इस्तेमाल करें:

    # Add template parameters to config
    config = template.evaluate()
    

    Java

    template.evaluate() का इस्तेमाल करें:

    // Add template parameters to config
    ServerConfig config = template.evaluate();
    

    जाएं

    जब कोई शर्त लागू न हो, तो खाली आकलन कॉन्टेक्स्ट के साथ template.Evaluate() का इस्तेमाल करें:

    // An empty evaluation context means no conditions are applied.
    evaluationContext := make(map[string]any)
    config, err := template.Evaluate(evaluationContext)
    if err != nil {
        log.Fatalln("Error evaluating template:", err)
    }
    
  4. अगर आपने Remote Config टेंप्लेट में शर्तें सेट की हैं, तो अपनी पसंद के मुताबिक कॉन्टेक्स्ट वैल्यू तय करें और उन्हें उपलब्ध कराएं:

    • अगर प्रतिशत की शर्तों का इस्तेमाल किया जा रहा है, तो रैंडमाइज़ेशन आईडी (randomizationId, randomization_id या randomizationID) जोड़ें. इसका इस्तेमाल, टेंप्लेट की जांच करने वाले फ़ंक्शन में अपनी शर्तों की जांच करने के लिए किया जाता है.
    • कस्टम सिग्नल का इस्तेमाल करने पर, एट्रिब्यूट और उनकी वैल्यू तय करें. कस्टम सिग्नल, Firebase Admin Node.js SDK टूल के 12.5.0 या इसके बाद के वर्शन, Python SDK टूल के 6.7.0 या इसके बाद के वर्शन, Java SDK टूल के 9.7.0 या इसके बाद के वर्शन, और Go SDK टूल के 4.17.0 या इसके बाद के वर्शन के साथ उपलब्ध हैं.

    उदाहरण के लिए, रैंडमाइज़ेशन आईडी के तौर पर Firebase इंस्टॉलेशन आईडी या यूज़र आईडी सेट किया जा सकता है. इससे यह पक्का किया जा सकता है कि आपके सर्वर से संपर्क करने वाले हर उपयोगकर्ता को सही रैंडमाइज़ किए गए ग्रुप में जोड़ा जाए. साथ ही, क्लाइंट के खास वर्शन को टारगेट करने के लिए, version को कस्टम सिग्नल के तौर पर और क्लाइंट प्लैटफ़ॉर्म को टारगेट करने के लिए, platform को कस्टम सिग्नल के तौर पर जोड़ा जाए.

    शर्तों के बारे में ज़्यादा जानने के लिए, शर्त के नियम के टाइप देखें.

    Node.js

    template.evaluate() को randomizationId और कोई कस्टम सिग्नल वाला इवैलुएशन कॉन्टेक्स्ट ऑब्जेक्ट पास करें:

    // 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"
    });
    

    Python

    template.evaluate() को randomization_id और कोई भी कस्टम सिग्नल वाली डिक्शनरी पास करें:

    # Add template parameters to `config`. Evaluates the
    # template and returns the parameter value assigned to
    # the group assigned to the {randomization_id} and version.
    config = template.evaluate({
      'randomization_id': "2ac93c28-c459-4760-963d-a3974ec26c04",
      'version': "1.0",
      'platform': "Android"
    })
    

    Java

    randomizationId और किसी भी कस्टम सिग्नल वाला KeysAndValues कॉन्टेक्स्ट बनाएं. इसके बाद, उसे template.evaluate() को पास करें:

    // Add custom signals and randomizationId
    KeysAndValues context = new KeysAndValues.Builder()
                                    .put("custom_signal_key", "99")
                                    .put("randomizationId", "2ac93c28")
                                    .build();
    
    // Evaluate the template with signals
    ServerConfig config = template.evaluate(context);
    

    जाएं

    template.Evaluate() को randomizationID और कोई कस्टम सिग्नल वाला इवैलुएशन कॉन्टेक्स्ट मैप पास करें:

    // Add template parameters to `config`. Evaluates the
    // template and returns the parameter value assigned to
    // the group assigned to the {randomizationID}, version, and platform.
    evaluationContext := make(map[string]any)
    evaluationContext["randomizationID"] = "2ac93c28-c459-4760-963d-a3974ec26c04"
    evaluationContext["version"] = "1.0"
    evaluationContext["platform"] = "Android"
    
    config, err := template.Evaluate(evaluationContext)
    if err != nil {
        log.Fatalln("Error evaluating template:", err)
    }
    
  5. इसके बाद, आकलन किए गए कॉन्फ़िगरेशन ऑब्जेक्ट से, अपनी ज़रूरत के हिसाब से पैरामीटर वैल्यू निकालें. Remote Config से वैल्यू को सही फ़ॉर्मैट में कास्ट करने के लिए, getter मेथड का इस्तेमाल करें.

    उदाहरण के लिए, अगर आपको अपने सर्वर पर Agent Platform को लागू करना है और मॉडल और मॉडल पैरामीटर बदलने हैं, तो model_name और generation_config के लिए पैरामीटर कॉन्फ़िगर किए जा सकते हैं. यहां इस्तेमाल किए जा सकने वाले गेटर तरीके दिए गए हैं. साथ ही, हर प्लैटफ़ॉर्म के लिए Remote Config वैल्यू को ऐक्सेस करने का उदाहरण दिया गया है:

    Node.js

    गेटर के ये तरीके इस्तेमाल किए जा सकते हैं:

    • बूलियन: getBoolean
    • ऑब्जेक्ट: getValue
    • नंबर: getNumber
    • स्ट्रिंग: getString

    // Replace defaults with values from Remote Config.
    const generationConfig =
      JSON.parse(
        config.getString('generation_config'));
    
    const is_ai_enabled = config.getBoolean('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}`;
    

    Python

    गेटर के ये तरीके इस्तेमाल किए जा सकते हैं:

    • बूलियन: get_bool
    • पूरी संख्या: get_int
    • फ़्लोट: get_float
    • स्ट्रिंग: get_string
    • वैल्यू का सोर्स: get_value_source

    # Replace defaults with values from Remote Config.
    generation_config = json.loads(config.get_string('generation_config'))
    is_ai_enabled = config.get_bool('is_ai_enabled')
    model = config.get_string('model_name')
    
    # Generates a prompt comprised of the Remote Config
    # parameter and prepends it to the user prompt.
    prompt = f"{config.get_string('preamble_prompt')}{req.args.get('prompt')}"
    

    Java

    गेटर के ये तरीके इस्तेमाल किए जा सकते हैं:

    • बूलियन: getBoolean
    • स्ट्रिंग: getString
    • डबल: getDouble
    • लंबा फ़ॉर्मैट: getLong
    • वैल्यू का सोर्स: getValueSource

    // Get the model name
    String modelName = config.getString("model_name");
    // Get the origin of value assigned to param
    ValueSource modelNameSource = config.getValueSource("model_name");
    

    getValueSource तरीका, ValueSource दिखाता है. इससे पता चलता है कि पैरामीटर की वैल्यू का सोर्स STATIC, REMOTE या DEFAULT है.

    जाएं

    गेटर के ये तरीके इस्तेमाल किए जा सकते हैं:

    • बूलियन: GetBoolean
    • पूरी संख्या: GetInt
    • फ़्लोट: GetFloat
    • स्ट्रिंग: GetString
    • वैल्यू का सोर्स: GetValueSource

    // Replace defaults with values from Remote Config.
    
    // Assume the type generationConfig has been defined
    var genConfig generationConfig
    err = json.Unmarshal([]byte(config.GetString("generation_config")), &genConfig)
    if err != nil {
        log.Fatalln("Error unmarshaling generation config:", err)
    }
    model := config.GetString("model_name")
    
    // Parameter created on the console
    isAIEnabled := config.GetBoolean("is_ai_enabled")
    
    // Generates a prompt comprised of the Remote Config
    // parameter and prepends it to the user prompt (assume it is extracted from the request body)
    userPrompt := "What is Remote Config?"
    prompt := fmt.Sprintf("%s %s", config.GetString("preamble_prompt"), userPrompt)
    
  6. अगर आपका सर्वर लंबे समय से चल रहा है और सर्वरलेस एनवायरमेंट नहीं है, तो समय-समय पर टेंप्लेट को फिर से लोड करें. उदाहरण के लिए, Node.js में setInterval या Java में java.util.Timer का इस्तेमाल करें. इससे यह पुष्टि की जा सकेगी कि आपको Remote Config सर्वर से सबसे अप-टू-डेट टेंप्लेट मिल रहा है.

चौथा चरण: Remote Config में सर्वर के हिसाब से पैरामीटर वैल्यू सेट करना

इसके बाद, सर्वर Remote Config टेंप्लेट बनाएं. साथ ही, अपने ऐप्लिकेशन में इस्तेमाल करने के लिए, पैरामीटर और वैल्यू कॉन्फ़िगर करें.

यहां सर्वर के हिसाब से Remote Config टेंप्लेट बनाने का तरीका बताया गया है:

  1. Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं.

  2. पेज पर सबसे ऊपर मौजूद, क्लाइंट/सर्वर सिलेक्टर से सर्वर चुनें.

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

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

  5. पैरामीटर जोड़ने के बाद, बदलाव पब्लिश करें पर क्लिक करें.

  6. बदलावों की समीक्षा करें और फिर से बदलावों को पब्लिश करें पर क्लिक करें.

पांचवां चरण: Cloud Functions for Firebase या Cloud Run का इस्तेमाल करके डिप्लॉय करना

अगर आपका सर्वर ऐप्लिकेशन हल्का है और इवेंट के हिसाब से काम करता है, तो आपको Cloud Functions for Firebase का इस्तेमाल करके अपना कोड डिप्लॉय करना चाहिए. उदाहरण के लिए, मान लें कि आपके पास एक ऐसा ऐप्लिकेशन है जिसमें जनरेटिव एआई एपीआई (जैसे, Google AI या Agent Platform) की मदद से, किरदार के डायलॉग शामिल किए गए हैं. इस मामले में, एलएलएम की सेवा देने वाले लॉजिक को ऐसे फ़ंक्शन में होस्ट किया जा सकता है जिसे आपका ऐप्लिकेशन मांग पर कॉल करता है.

अगर आपको सर्वर पर रेंडर होने वाला वेब ऐप्लिकेशन बनाना है, तो App Hosting में लोकप्रिय वेब फ़्रेमवर्क के लिए सहायता उपलब्ध है.

अगर ऐसा नहीं है, तो Cloud Run. Cloud Run की मदद से अपने सर्वर ऐप्लिकेशन को डिप्लॉय करने के लिए, अपनी भाषा के हिसाब से क्विकस्टार्ट गाइड देखें:

अगले चरण