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

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

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

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

  {
    "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 संग्रहीत संस्करणों की कुल सीमा। यदि आप उन सीमाओं के बाहर किसी टेम्पलेट को स्टोर या रोल बैक करना चाहते हैं, तो इसे मैन्युअल रूप से सेव और स्टोर करें। मौजूदा सक्रिय रिमोट कॉन्फ़िग उपयोग में आपके ऐप के द्वारा टेम्पलेट समाप्त हो; हालाँकि, यदि यह निर्माण के 90 दिनों से अधिक समय से सक्रिय है और इसे एक अद्यतन द्वारा प्रतिस्थापित किया गया है, तो इसे फिर से प्राप्त नहीं किया जा सकता है (समाप्ति के कारण)।

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

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

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

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

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>: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</pre>

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

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

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

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

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

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 POST जारी :rollback और, अनुरोध शरीर में, विशेष संस्करण लागू करने के लिए। उदाहरण के लिए:

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

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

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

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

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

firebase remoteconfig:rollback -v VERSION_NUMBER

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