Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

    कस्टम टूल और सर्वर के साथ इंटरैक्ट करते हुए रिमोट कॉन्फिग बैकएंड को दिखाने वाला आरेख

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

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

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

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

SDK प्रारंभ करें और API अनुरोधों को अधिकृत करें

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

function addParameterToGroup(template) {
  template.parameterGroups['new_menu'].parameters['spring_season'] = {
    defaultValue: {
      useInAppDefault: true
    },
    description: 'spring season menu visibility.',
  };
}

जावा

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

function validateTemplate(template) {
  admin.remoteConfig().validateTemplate(template)
      .then(function (validatedTemplate) {
        // The template is valid and safe to use.
        console.log('Template was valid and safe to use');
      })
      .catch(function (err) {
        console.error('Template is invalid and cannot be published');
        console.error(err);
      });
}

जावा

try {
  Template validatedTemplate = FirebaseRemoteConfig.getInstance()
          .validateTemplateAsync(template).get();
  System.out.println("Template was valid and safe to use");
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Template is invalid and cannot be published");
    System.out.println(rcError.getMessage());
  }
}

यह सत्यापन प्रक्रिया त्रुटियों के लिए जाँच करती है जैसे पैरामीटर और शर्तों के लिए डुप्लिकेट कुंजियाँ, अमान्य स्थिति नाम या गैर-मौजूद शर्तें, या गलत प्रारूपित ईटैग। उदाहरण के लिए, एक अनुरोध की अनुमति संख्या से अधिक युक्त कुंजी-2000-होगा त्रुटि संदेश लौटने के लिए, 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 का उपयोग करके दूरस्थ कॉन्फ़िगरेशन को संशोधित करें

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

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

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

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

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

  1. Firebase कंसोल, सेटिंग> में सेवा खाते

  2. नया निजी कुंजी उत्पन्न क्लिक करें, फिर क्लिक करके पुष्टि करें कुंजी उत्पन्न करें।

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

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

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

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

लिनक्स या macOS

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

खिड़कियाँ

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

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

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

अपने Firebase पहचान के साथ एक साथ उपयोग करें गूगल प्रमाणीकरण लाइब्रेरी टोकन एक अल्पकालिक 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 {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

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

रिमोट कॉन्फ़िग में पहुंच देना, गुंजाइश का अनुरोध 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

यह API कॉल से ये JSON, एक अलग शीर्ष लेख है जो एक भी शामिल है के साथ ETag है कि आप बाद में अनुरोध के लिए इस्तेमाल करते हैं।

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

वैकल्पिक रूप से, आप अपने अपडेट को प्रकाशित करने से पहले सत्यापित कर सकते हैं। आपके प्रकाशित अनुरोध करने के लिए URL पैरामीटर जोड़कर मान्य टेम्पलेट अद्यतन ?validate_only=true । जवाब में, स्थिति कोड 200 और प्रत्यय के साथ एक अद्यतन ETag -0 मतलब है कि आपके अद्यतन सफलतापूर्वक मान्य किया गया था। कोई भी गैर-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 आदेश।

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

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

{
  "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 मान प्राप्त किया था। इसके समाधान के लिए, आप एक का उपयोग करना चाहिए GET आदेश टेम्पलेट अद्यतन करते हैं, एक ताजा टेम्पलेट और ETag मूल्य मिलता है, और फिर उस टेम्पलेट और ताजा ETag मूल्य का उपयोग कर प्रस्तुत करने के लिए।
  • एक PUT आदेश (अपडेट रिमोट कॉन्फ़िग टेम्पलेट अनुरोध) एक निर्दिष्ट किए बिना किया गया था If-Match हैडर।
401 एक प्राधिकरण त्रुटि हुई (कोई एक्सेस टोकन प्रदान नहीं किया गया था या Firebase Remote Config REST API को Cloud Developer Console में आपके प्रोजेक्ट में नहीं जोड़ा गया है)
403 एक प्रमाणीकरण त्रुटि हुई (गलत पहुंच टोकन प्रदान किया गया था)
500 एक आंतरिक त्रुटि हुई। इस त्रुटि होती है, तो एक Firebase समर्थन टिकट फ़ाइल

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

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

ETag उपयोग और जबरन अद्यतन

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

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

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

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