Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

दूरस्थ कॉन्फ़िगरेशन को प्रोग्रामेटिक रूप से संशोधित करें

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

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

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

इस मार्गदर्शिका के निम्नलिखित भाग उन कार्यों का वर्णन करते हैं जो आप रिमोट कॉन्फिग बैकएंड एपीआई से कर सकते हैं। REST API के माध्यम से इन कार्यों को करने वाले कुछ कोड की समीक्षा करने के लिए, इन नमूना ऐप्स में से एक देखें:

Firebase व्यवस्थापक SDK का उपयोग करके दूरस्थ कॉन्फ़िगरेशन को संशोधित करें

एडमिन SDK सर्वर लाइब्रेरी का एक सेट है जो आपको विशेषाधिकार प्राप्त वातावरण से Firebase के साथ बातचीत करने देता है। रिमोट कॉन्फिगर करने के लिए अपडेट करने के अलावा, एडमिन SDK रियलटाइम डेटाबेस से फायरबस ऑर्ट टोकन को पढ़ने और लिखने के लिए जेनरेशन और वेरिफिकेशन को सक्षम करता है। व्यवस्थापक SDK पूर्वापेक्षाएँ और सेटअप के बारे में अधिक जानने के लिए, अपने सर्वर में Firebase Admin SDK जोड़ें देखें।

एक विशिष्ट दूरस्थ कॉन्फ़िगरेशन प्रवाह में, आप वर्तमान टेम्पलेट प्राप्त कर सकते हैं, कुछ मापदंडों या पैरामीटर समूहों और शर्तों को संशोधित कर सकते हैं, टेम्पलेट को मान्य कर सकते हैं और फिर इसे प्रकाशित कर सकते हैं। उन एपीआई कॉल करने से पहले, आपको एसडीके से अनुरोधों को अधिकृत करना होगा।

एसडीके को प्रारंभ करें और एपीआई अनुरोधों को अधिकृत करें

जब आप कोई पैरामीटर के साथ व्यवस्थापक SDK को प्रारंभ करते हैं, तो SDK Google अनुप्रयोग डिफ़ॉल्ट क्रेडेंशियल का उपयोग करता है और FIREBASE_CONFIG वातावरण चर से विकल्प पढ़ता है। यदि FIREBASE_CONFIG चर की सामग्री एक { शुरू होती है, तो इसे JSON ऑब्जेक्ट के रूप में पार्स किया जाएगा। अन्यथा SDK मानता है कि स्ट्रिंग JSON फ़ाइल का नाम है जिसमें विकल्प हैं।

उदाहरण के लिए:

Node.js

const admin = require('firebase-admin');
admin.initializeApp();

जावा

FileInputStream serviceAccount = new FileInputStream("service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
        .setCredentials(GoogleCredentials.fromStream(serviceAccount))
        .build();
FirebaseApp.initializeApp(options);

वर्तमान दूरस्थ कॉन्फ़िगरेशन टेम्पलेट प्राप्त करें

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

आप JSON प्रारूप में दूरस्थ कॉन्फ़िगरेशन टेम्पलेट के वर्तमान सक्रिय संस्करण को प्राप्त करने के लिए बैकएंड एपीआई का उपयोग कर सकते हैं। टेम्पलेट पाने के लिए:

Node.js

function getTemplate() {
  var config = admin.remoteConfig();
  config.getTemplate()
      .then(function (template) {
        console.log('ETag from server: ' + template.etag);
        var templateStr = JSON.stringify(template);
        fs.writeFileSync('config.json', templateStr);
      })
      .catch(function (err) {
        console.error('Unable to get template');
        console.error(err);
      });
}

जावा

Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get();
// See the ETag of the fetched template.
System.out.println("ETag from server: " + template.getETag());

दूरस्थ कॉन्फ़िगरेशन पैरामीटर संशोधित करें

आप प्रोग्राम को दूरस्थ रूप से कॉन्फ़िगर कर सकते हैं और दूरस्थ कॉन्फ़िगरेशन पैरामीटर और पैरामीटर समूह जोड़ सकते हैं। उदाहरण के लिए, "new_menu" नामक एक मौजूदा पैरामीटर समूह में आप मौसमी जानकारी के प्रदर्शन को नियंत्रित करने के लिए एक पैरामीटर जोड़ सकते हैं:

Node.js

05357 ए 6060

जावा

template.getParameterGroups().get("new_menu").getParameters()
        .put("spring_season", new Parameter()
                .setDefaultValue(ParameterValue.inAppDefault())
                .setDescription("spring season menu visibility.")
        );

एपीआई आपको नए पैरामीटर और पैरामीटर समूह बनाने या डिफ़ॉल्ट मान, सशर्त मान और विवरण संशोधित करने की अनुमति देता है। सभी मामलों में, आपको संशोधन करने के बाद टेम्पलेट को स्पष्ट रूप से प्रकाशित करना होगा।

दूरस्थ कॉन्फ़िगरेशन स्थितियों को संशोधित करें

आप प्रोग्राम को दूरस्थ रूप से कॉन्फ़िगर करने की शर्तों और सशर्त मानों को संशोधित और जोड़ सकते हैं। उदाहरण के लिए, एक नई शर्त जोड़ने के लिए:

Node.js

function addNewCondition(template) {
  template.conditions.push({
    name: 'android_en',
    expression: 'device.os == \'android\' && device.country in [\'us\', \'uk\']',
    tagColor: 'BLUE',
  });
}

जावा

template.getConditions().add(new Condition("android_en",
        "device.os == 'android' && device.country in ['us', 'uk']", TagColor.BLUE));

सभी मामलों में, आपको संशोधन करने के बाद टेम्पलेट को स्पष्ट रूप से प्रकाशित करना होगा।

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

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को मान्य करें

वैकल्पिक रूप से, आप अपने अपडेट को प्रकाशित करने से पहले सत्यापित कर सकते हैं, जैसा कि दिखाया गया है:

Node.js

0629341 सी 30

जावा

0937 सीएफएफ 20

यह सत्यापन प्रक्रिया त्रुटियों के लिए जांचती है जैसे कि मापदंडों और शर्तों के लिए डुप्लिकेट कुंजियाँ, अमान्य स्थिति नाम या कोई भी नहीं की स्थिति, या गलत तरीके से बनाई गई एटगैस। उदाहरण के लिए, कुंजी-2000 की अनुमत संख्या से अधिक वाला Param count too large त्रुटि संदेश लौटाएगा, Param count too large

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट प्रकाशित करें

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

यदि आवश्यक हो, तो आप पिछले संस्करण में वापस रोल करने के लिए REST API का उपयोग कर सकते हैं। किसी अपडेट में त्रुटियों के जोखिम को कम करने के लिए, आप प्रकाशन से पहले सत्यापन कर सकते हैं।

Node.js

function publishTemplate() {
  var config = admin.remoteConfig();
  var template = config.createTemplateFromJSON(
      fs.readFileSync('config.json', 'UTF8'));
  config.publishTemplate(template)
      .then(function (updatedTemplate) {
        console.log('Template has been published');
        console.log('ETag from server: ' + updatedTemplate.etag);
      })
      .catch(function (err) {
        console.error('Unable to publish template.');
        console.error(err);
      });
}

जावा

try {
  Template publishedTemplate = FirebaseRemoteConfig.getInstance()
          .publishTemplateAsync(template).get();
  System.out.println("Template has been published");
  // See the ETag of the published template.
  System.out.println("ETag from server: " + publishedTemplate.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Unable to publish template.");
    System.out.println(rcError.getMessage());
  }
}

REST API का उपयोग करके रिमोट कॉन्फिगर करें

यह खंड https://firebaseremoteconfig.googleapis.com पर रिमोट कॉन्फिगर रीस्ट एपीआई की मुख्य क्षमताओं का वर्णन करता है। पूर्ण विवरण के लिए, एपीआई संदर्भ देखें।

एपीआई अनुरोधों को प्रमाणित और अधिकृत करने के लिए एक पहुंच टोकन प्राप्त करें

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

एक सेवा खाते को प्रमाणित करने और फायरबेस सेवाओं तक पहुंचने के लिए इसे अधिकृत करने के लिए, आपको JSON प्रारूप में एक निजी कुंजी फ़ाइल बनानी होगी।

अपने सेवा खाते के लिए एक निजी कुंजी फ़ाइल बनाने के लिए:

  1. फायरबेस कंसोल में, सेटिंग्स> सेवा खाते खोलें।

  2. Generate New Private Key पर क्लिक करें , फिर Generate Key पर क्लिक करके पुष्टि करें

  3. JSON फ़ाइल को कुंजी से सुरक्षित रूप से संग्रहीत करें।

सेवा खाते के माध्यम से अधिकृत करते समय, आपके पास अपने आवेदन के लिए क्रेडेंशियल्स प्रदान करने के लिए दो विकल्प होते हैं। आप या तो GOOGLE_APPLICATION_CREDENTIALS पर्यावरण चर सेट कर सकते हैं, या आप कोड में सेवा खाता कुंजी के लिए पथ को स्पष्ट रूप से पारित कर सकते हैं। पहला विकल्प अधिक सुरक्षित है और दृढ़ता से अनुशंसित है।

पर्यावरण चर सेट करने के लिए:

JSON फ़ाइल के फ़ाइल पथ में वातावरण चर GOOGLE_APPLICATION_CREDENTIALS सेट करें जिसमें आपका खाता खाता कुंजी हो। यह चर केवल आपके वर्तमान शेल सत्र पर लागू होता है, इसलिए यदि आप एक नया सत्र खोलते हैं, तो चर को फिर से सेट करें।

लिनक्स या macOS

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

खिड़कियाँ

पॉवरशेल के साथ:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

उपरोक्त चरणों को पूरा करने के बाद, एप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल (ADC) आपके क्रेडेंशियल्स को स्पष्ट रूप से निर्धारित करने में सक्षम है, जिससे आप गैर-Google वातावरण में परीक्षण या चलाने के दौरान सेवा खाता क्रेडेंशियल्स का उपयोग कर सकते हैं।

अपनी पसंदीदा भाषा के लिए Google API क्लाइंट लाइब्रेरी के साथ अपने फायरबेस क्रेडेंशियल्स का उपयोग एक अल्पकालिक OAuth 2.0 एक्सेस टोकन प्राप्त करने के लिए करें:

नोड

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

इस उदाहरण में, Google API क्लाइंट लाइब्रेरी JSON वेब टोकन या JWT के साथ अनुरोध को प्रमाणित करता है। अधिक जानकारी के लिए, JSON वेब टोकन देखें।

अजगर

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

जावा

private static String getAccessToken() throws IOException {
  GoogleCredential googleCredential = GoogleCredential
      .fromStream(new FileInputStream("service-account.json"))
      .createScoped(Arrays.asList(SCOPES));
  googleCredential.refreshToken();
  return googleCredential.getAccessToken();
}

आपके एक्सेस टोकन की समय सीमा समाप्त होने के बाद, एक अपडेटेड टोकन को पुनः प्राप्त करने के लिए टोकन रीफ्रेश विधि को स्वचालित रूप से कहा जाता है।

दूरस्थ कॉन्फ़िगरेशन तक पहुँच को अधिकृत करने के लिए, गुंजाइश का अनुरोध करें https://www.googleapis.com/auth/firebase.remoteconfig

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को संशोधित करें

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

वर्तमान दूरस्थ कॉन्फ़िगरेशन टेम्पलेट प्राप्त करें

आप JSON प्रारूप में दूरस्थ कॉन्फ़िगरेशन टेम्पलेट के वर्तमान सक्रिय संस्करण को प्राप्त करने के लिए बैकएंड एपीआई का उपयोग कर सकते हैं। निम्नलिखित आदेशों का उपयोग करें:

कर्ल

curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename

यह कमांड एक फाइल में JSON पेलोड और एक अलग फाइल के हेडर (Etag सहित) को आउटपुट करता है।

कच्चा HTTP अनुरोध

Host: firebaseremoteconfig.googleapis.com

GET /v1/projects/my-project-id/remoteConfig HTTP/1.1
Authorization: Bearer token
Accept-Encoding: gzip

यह एपीआई कॉल निम्नलिखित JSON को लौटाता है, साथ ही एक अलग हेडर जिसमें एक ETag शामिल है जिसे आप बाद के अनुरोध के लिए उपयोग करते हैं।

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को मान्य करें

वैकल्पिक रूप से, आप अपने अपडेट को प्रकाशित करने से पहले उन्हें सत्यापित कर सकते हैं। अपने प्रकाशन अनुरोध को जोड़कर टेम्प्लेट अपडेट अपडेट करें URL पैरामीटर का अनुरोध करें ?validate_only=true प्रतिक्रिया में, एक स्थिति कोड 200 और प्रत्यय -0 साथ एक अद्यतन etag का मतलब है कि आपका अपडेट सफलतापूर्वक सत्यापित किया गया था। कोई भी गैर-200 प्रतिक्रिया इंगित करती है कि JSON डेटा में त्रुटियां हैं जो आपको प्रकाशन से पहले सही होनी चाहिए।

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को अद्यतन करें

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

यदि आवश्यक हो, तो आप पिछले संस्करण पर वापस जाने के लिए REST API का उपयोग कर सकते हैं। किसी अपडेट में त्रुटियों के जोखिम को कम करने के लिए, आप प्रकाशन से पहले सत्यापन कर सकते हैं।

कर्ल

curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename

इस curl कमांड के लिए, आप "@" वर्ण का उपयोग करके सामग्री को निर्दिष्ट कर सकते हैं, उसके बाद फाइलनाम।

कच्चा HTTP अनुरोध

Host: firebaseremoteconfig.googleapis.com
PUT /v1/projects/my-project-id/remoteConfig HTTP/1.1
Content-Length: size
Content-Type: application/json; UTF8
Authorization: Bearer token
If-Match: expected ETag
Accept-Encoding: gzip
JSON_HERE

क्योंकि यह एक लेखन अनुरोध है, ETag इस आदेश द्वारा संशोधित किया गया है और एक अद्यतन ETag अगले की प्रतिक्रिया हेडर में प्रदान की जाती है PUT आदेश।

दूरस्थ कॉन्फ़िगरेशन स्थितियों को संशोधित करें

आप प्रोग्राम को दूरस्थ विन्यास स्थिति और सशर्त मान को संशोधित कर सकते हैं। REST API के साथ, आपको टेम्प्लेट प्रकाशित करने से पहले शर्तों को संशोधित करने के लिए टेम्पलेट को सीधे संपादित करना होगा।

{
  "conditions": [{
    "name": "android_english",
    "expression": "device.os == 'android' && device.country in ['us', 'uk']",
    "tagColor": "BLUE"
  }, {
    "name": "tenPercent",
    "expression": "percent <= 10",
    "tagColor": "BROWN"
  }],
  "parameters": {
    "welcome_message": {
      "defaultValue": {
        "value": "Welcome to this sample app"
      },
      "conditionalValues": {
        "tenPercent": {
          "value": "Welcome to this new sample app"
        }
      },
      "description": "The sample app's welcome message"
    },
    "welcome_message_caps": {
      "defaultValue": {
        "value": "false"
      },
      "conditionalValues": {
        "android_english": {
          "value": "true"
        }
      },
      "description": "Whether the welcome message should be displayed in all capital letters."
    }
  }
}

ऊपर दिए गए संशोधन पहले शर्तों का एक सेट परिभाषित करते हैं, और फिर प्रत्येक पैरामीटर के लिए डिफ़ॉल्ट मान और शर्त-आधारित पैरामीटर ( सशर्त मान ) मान को परिभाषित करते हैं। यह प्रत्येक तत्व के लिए एक वैकल्पिक विवरण भी जोड़ता है; कोड टिप्पणियों की तरह, ये डेवलपर उपयोग के लिए हैं और ऐप में प्रदर्शित नहीं होते हैं। संस्करण नियंत्रण उद्देश्यों के लिए एक ETag भी प्रदान किया जाता है।

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

HTTP त्रुटि कोड

स्थिति का कोड जिसका अर्थ है
200 रु सफलतापूर्वक उत्परिवर्तित
400 एक सत्यापन त्रुटि हुई। उदाहरण के लिए, एक अनुरोध जिसमें कुंजियों की अनुमत संख्या 2000 से अधिक है - त्रुटि संदेश के साथ 400 (बैड रिक्वेस्ट) लौटाएगा, Param count too large । इसके अलावा, इन दो स्थितियों में यह HTTPS स्टेटस कोड हो सकता है:
  • एक संस्करण बेमेल त्रुटि उत्पन्न हुई, क्योंकि मूल्यों और स्थितियों के सेट को तब से अपडेट किया गया है जब से आपने पिछली बार ETag मान प्राप्त किया था। इसे हल करने के लिए, आपको नए टेम्पलेट और ETag मान प्राप्त करने के लिए GET कमांड का उपयोग करना चाहिए, टेम्पलेट को अपडेट करना चाहिए, और फिर उस टेम्पलेट और नए ETag मूल्य का उपयोग करके सबमिट करें।
  • एक PUT कमांड (अपडेट रिमोट कॉन्फिगर टेम्प्लेट अनुरोध) एक आई If-Match हेडर को निर्दिष्ट किए बिना बनाया गया था।
401 एक प्राधिकरण त्रुटि उत्पन्न हुई (कोई एक्सेस टोकन प्रदान नहीं किया गया था या क्लाउड डेवलपर कंसोल में आपके प्रोजेक्ट में Firebase Remote Config REST API नहीं जोड़ा गया है)
403 प्रमाणीकरण त्रुटि हुई (गलत पहुंच टोकन प्रदान किया गया था)
500 एक आंतरिक त्रुटि हुई। यदि यह त्रुटि होती है, तो फायरबेस सपोर्ट टिकट फाइल करें

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

अपने टेम्प्लेट में अपडेट सबमिट करने के बाद, यह सत्यापित करने के लिए फायरबेस कंसोल पर जाएं कि आपके परिवर्तन अपेक्षित रूप से दिखाई दें। यह महत्वपूर्ण है क्योंकि शर्तों का आदेश प्रभावित करता है कि उनका मूल्यांकन कैसे किया जाता है (पहली शर्त जो true मूल्यांकन करती true ) प्रभावी होती है।

ETag उपयोग और मजबूर अपडेट

दूरस्थ कॉन्फ़िगरेशन REST API रेस की स्थिति और संसाधनों के अपडेट को ओवरलैप करने से रोकने के लिए एक इकाई टैग (ETag) का उपयोग करता है। ETags के बारे में अधिक जानने के लिए, ETag - HTTP देखें।

REST API के लिए, Google अनुशंसा करता है कि आप सबसे हाल ही में GET कमांड द्वारा दिए गए ETag को कैश GET , और PUT कमांड जारी करते समय If-Match अनुरोध हेडर में उस ETag मूल्य का उपयोग करें। यदि आपका PUT कमांड HTTPS Status कोड 409 में परिणाम करता है, तो आपको अपने अगले PUT कमांड के साथ उपयोग करने के लिए एक नया ETag और टेम्पलेट प्राप्त करने के लिए एक नया GET कमांड जारी करना चाहिए।

आप दूरस्थ विन्यास टेम्प्लेट को निम्नानुसार अद्यतन करने के लिए मजबूर करके, ETag और उससे मिलने वाले संरक्षण को दरकिनार कर सकते हैं: If-Match: * हालाँकि, इस दृष्टिकोण की अनुशंसा नहीं की जाती है क्योंकि यह आपके दूरस्थ कॉन्फ़िगरेशन के अपडेट को नुकसान पहुंचाता है। टेम्पलेट यदि कई क्लाइंट दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को अपडेट कर रहे हैं। इस तरह का संघर्ष एपीआई का उपयोग करने वाले कई ग्राहकों के साथ हो सकता है, या एपीआई क्लाइंट और फायरबेस कंसोल उपयोगकर्ताओं के परस्पर विरोधी अपडेट के साथ हो सकता है।

दूरस्थ कॉन्फ़िगरेशन टेम्पलेट संस्करणों के प्रबंधन के लिए मार्गदर्शन के लिए, दूरस्थ कॉन्फ़िगरेशन टेम्पलेट और संस्करण देखें