Check out what’s new from Firebase at Google I/O 2022. Learn more

रिमोट कॉन्फिग टेम्प्लेट और वर्जनिंग

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

यहाँ एक टेम्पलेट फ़ाइल का एक उदाहरण है:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

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

फायरबेस कंसोल, फायरबेस सीएलआई, या रिमोट कॉन्फिग बैकएंड एपीआई के साथ, आप ये संस्करण प्रबंधन कार्य कर सकते हैं:

  • सभी संग्रहीत टेम्पलेट संस्करणों की सूची बनाएं
  • एक विशिष्ट संस्करण पुनर्प्राप्त करें
  • एक विशिष्ट संस्करण में वापस रोल करें

जब आप रिमोट कॉन्फिग टेम्प्लेट को प्रबंधित करते हैं, तो समाप्ति सीमा को ध्यान में रखें: आपके ऐप द्वारा उपयोग किए जा रहे वर्तमान सक्रिय रिमोट कॉन्फिग टेम्प्लेट की समय सीमा समाप्त नहीं होती है; हालांकि, अगर इसे किसी अपडेट से बदल दिया जाता है, तो पिछला संस्करण केवल 90 दिनों के लिए संग्रहीत किया जाएगा, जिसके बाद यह समाप्त हो जाएगा और इसे पुनर्प्राप्त नहीं किया जा सकता है। 300 संग्रहीत संस्करणों की कुल सीमा भी है। यदि आप उन सीमाओं के बाहर किसी टेम्पलेट को स्टोर या रोल बैक करना चाहते हैं, तो इसे मैन्युअल रूप से सेव और स्टोर करें।

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

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

रिमोट कॉन्फिग टेम्पलेट के सभी संग्रहीत संस्करणों की सूची बनाएं

आप दूरस्थ कॉन्फ़िग टेम्पलेट के सभी संग्रहीत संस्करणों की सूची प्राप्त कर सकते हैं। उदाहरण के लिए:

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

जावा

ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
while (page != null) {
  for (Version version : page.getValues()) {
    System.out.println("Version: " + version.getVersionNumber());
  }
  page = page.getNextPage();
}

// Iterate through all versions. This will still retrieve versions in batches.
page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get();
for (Version version : page.iterateAll()) {
  System.out.println("Version: " + version.getVersionNumber());
}

आराम

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

फायरबेस कंसोल

पैरामीटर टैब में, ऊपर दाईं ओर प्रदर्शित "घड़ी" आइकन चुनें। यह परिवर्तन इतिहास पृष्ठ खोलता है जो दाईं ओर सूची मेनू में सभी संग्रहीत टेम्पलेट संस्करणों को सूचीबद्ध करता है।

प्रत्येक संग्रहीत संस्करण के लिए प्रदर्शित विवरण में यह जानकारी शामिल होती है कि क्या परिवर्तन कंसोल के साथ, REST API के साथ, रोलबैक से उत्पन्न हुए हैं, या क्या वे टेम्पलेट के बलपूर्वक सहेजे गए वृद्धिशील परिवर्तन थे।

फायरबेस सीएलआई

firebase remoteconfig:versions:list

लौटाए जा रहे संस्करणों की संख्या को सीमित करने के लिए --limit विकल्प का उपयोग करें। सभी संस्करण लाने के लिए '0' पास करें।

टेम्प्लेट की सूची में सभी संग्रहीत संस्करणों के लिए मेटाडेटा शामिल है, जिसमें अपडेट का समय, इसे बनाने वाले उपयोगकर्ता और चाहे वह कंसोल या आरईएसटी एपीआई के माध्यम से बनाया गया हो। यहाँ एक संस्करण तत्व का एक उदाहरण है:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

रिमोट कॉन्फिग टेम्पलेट का एक विशिष्ट संस्करण प्राप्त करें

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

Node.js

टेम्पलेट के नवीनतम संस्करण को पुनः प्राप्त करने के लिए बिना किसी तर्क के getTemplate() पास करें, या किसी विशिष्ट संस्करण को पुनः प्राप्त करने के लिए, getTemplateAtVersion() का उपयोग करें।

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

जावा

Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get();
// See the ETag of the fetched template.
System.out.println("Successfully fetched the template with ETag: " + template.getETag());

आराम

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6

URL पैरामीटर ?version_number केवल GET संचालन के लिए मान्य है; आप अपडेट के लिए संस्करण संख्या निर्दिष्ट करने के लिए इसका उपयोग नहीं कर सकते हैं। ?version_number पैरामीटर के बिना एक समान प्राप्त अनुरोध वर्तमान सक्रिय टेम्पलेट को पुनः प्राप्त करेगा।

फायरबेस कंसोल

डिफ़ॉल्ट रूप से, इतिहास बदलें टैब में विवरण फलक वर्तमान सक्रिय टेम्पलेट प्रदर्शित करता है। सूची में किसी अन्य संस्करण का विवरण देखने के लिए, इसे दाएं मेनू से चुनें।

आप किसी भी गैर-चयनित संस्करण के लिए संदर्भ मेनू पर होवर करके और चयनित संस्करण के साथ तुलना करें का चयन करके वर्तमान में चयनित संस्करण और किसी अन्य संग्रहीत संस्करण का विस्तृत अंतर देख सकते हैं।

फायरबेस सीएलआई

firebase remoteconfig:get -v VERSION_NUMBER

वैकल्पिक रूप से, आप आउटपुट को -o, FILENAME के ​​साथ एक निर्दिष्ट फ़ाइल में लिख सकते हैं।

रिमोट कॉन्फिग टेम्पलेट के एक विशिष्ट संग्रहीत संस्करण में वापस रोल करें

आप टेम्पलेट के किसी भी संग्रहीत संस्करण में वापस रोल कर सकते हैं। उदाहरण के लिए:

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

जावा

try {
  Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get();
  System.out.println("Successfully rolled back to template version: " + versionNumber);
  System.out.println("New ETag: " + template.getETag());
} catch (ExecutionException e) {
  if (e.getCause() instanceof FirebaseRemoteConfigException) {
    FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause();
    System.out.println("Error trying to rollback template.");
    System.out.println(rcError.getMessage());
  }
}

आराम

एक संग्रहीत रिमोट कॉन्फिग टेम्पलेट पर वापस रोल करने के लिए, कस्टम विधि के साथ एक HTTP पोस्ट जारी करें :rollback और, अनुरोध निकाय में, लागू करने के लिए विशिष्ट संस्करण। उदाहरण के लिए:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'

प्रतिक्रिया में इसके नए संस्करण मेटाडेटा के साथ, अब सक्रिय संग्रहीत टेम्पलेट की सामग्री शामिल है।

फायरबेस कंसोल

रोलबैक के लिए पात्र पिछले टेम्प्लेट संस्करणों के लिए, उस संस्करण में वापस रोल करने के लिए एक विकल्प बटन परिवर्तन इतिहास पृष्ठ के शीर्ष दाईं ओर प्रदर्शित होता है। क्लिक करें और इसकी पुष्टि केवल तभी करें जब आप सुनिश्चित हों कि आप उस संस्करण में वापस आना चाहते हैं और सभी ऐप्स और उपयोगकर्ताओं के लिए उन मानों का तुरंत उपयोग करना चाहते हैं।

फायरबेस सीएलआई

firebase remoteconfig:rollback -v VERSION_NUMBER

ध्यान दें कि यह रोलबैक ऑपरेशन प्रभावी रूप से एक नया क्रमांकित संस्करण बनाता है। उदाहरण के लिए, संस्करण 10 से संस्करण 6 में वापस रोल करने से संस्करण 6 की एक नई प्रतिलिपि प्रभावी रूप से बन जाती है, जो मूल संस्करण से केवल इस मायने में भिन्न होती है कि इसकी संस्करण संख्या 11 है। मूल संस्करण 6 अभी भी संग्रहीत है, यह मानते हुए कि यह अपनी समाप्ति तक नहीं पहुंचा है, और संस्करण 11 सक्रिय टेम्पलेट बन जाता है।

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

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

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

आप इन फ़ाइलों को एंड्रॉइड ऐप के लिए एक्सएमएल फॉर्मेट, आईओएस ऐप के लिए प्रॉपर्टी लिस्ट (प्लिस्ट) फॉर्मेट और वेब ऐप के लिए JSON में डाउनलोड कर सकते हैं।

यह सुनिश्चित करने के लिए कि आपका ऐप और रिमोट कॉन्फ़िग बैकएंड सिंक में रहें, हम किसी भी नए ऐप रिलीज़ से पहले समय-समय पर रिमोट कॉन्फिगर डिफॉल्ट को डाउनलोड करने की सलाह देते हैं।

टेम्पलेट डिफ़ॉल्ट वाली फ़ाइल डाउनलोड करने के लिए:

आराम

curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'

आप जिस फ़ाइल प्रारूप को डाउनलोड करना चाहते हैं, उसके आधार पर format मान के रूप में XML , PLIST , या JSON का उपयोग करें।

फायरबेस कंसोल

  1. पैरामीटर टैब में, मेनू खोलें, और डिफ़ॉल्ट मान डाउनलोड करें चुनें।
  2. संकेत मिलने पर, उस रेडियो बटन पर क्लिक करें जो उस फ़ाइल स्वरूप से संबंधित है जिसे आप डाउनलोड करना चाहते हैं, और फिर फ़ाइल डाउनलोड करें पर क्लिक करें।

अपने ऐप में रिमोट कॉन्फिग डिफ़ॉल्ट मान आयात करने के बारे में अधिक जानकारी के लिए, देखें: