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


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

इस सेक्शन में, क्लाइंट टेंप्लेट के बारे में बताया गया है. सर्वर के लिए खास टेंप्लेट के बारे में जानने के लिए, **सर्वर टेंप्लेट** पर क्लिक करें.

आप Firebase कंसोल का इस्तेमाल करके, टेंप्लेट में बदलाव कर सकते हैं और उसे मैनेज कर सकते हैं. पैरामीटर और शर्तें टैब में, टेंप्लेट का कॉन्टेंट ग्राफ़िकल फ़ॉर्मैट में दिखता है. पैरामीटर और शर्तें टैब.

क्लाइंट टेंप्लेट में बदलाव करने और उसे मैनेज करने के लिए, Remote Config REST API और Admin SDK या Firebase CLI का भी इस्तेमाल किया जा सकता है.

यहां सर्वर टेंप्लेट फ़ाइल का एक उदाहरण दिया गया है:

{
  "parameters": {
    "preamble_prompt": {
      "defaultValue": {
        "value": "You are a helpful assistant who knows everything there is to know about Firebase! "
      },
      "description": "Add this prompt to the user's prompt",
      "valueType": "STRING"
    },
    "model_name": {
      "defaultValue": {
        "value": "gemini-pro-test"
      },
      "valueType": "STRING"
    },
    "generation_config": {
      "defaultValue": {
        "value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
      },
      "valueType": "JSON"
    },
  },
  "version": {
    "versionNumber": "19",
    "isLegacy": true
  }
}

Firebase कंसोल की मदद से, वर्शन मैनेजमेंट से जुड़े ये टास्क किए जा सकते हैं:

  • सेव किए गए सभी टेंप्लेट वर्शन की सूची देखना
  • कोई खास वर्शन वापस पाना
  • किसी खास क्लाइंट वर्शन पर रोल बैक करना से मिटाएं
  • Remote Config टेंप्लेट को बदलाव का इतिहास पेज से मिटाएं

हर टेंप्लेट टाइप के लिए, लाइफ़टाइम में सेव किए गए वर्शन की कुल सीमा 300 है. इसमें, मिटाए गए टेंप्लेट के सेव किए गए वर्शन नंबर भी शामिल हैं. जैसे, 300 क्लाइंट टेंप्लेट और 300 सर्वर टेंप्लेट. अगर किसी प्रोजेक्ट के लाइफ़टाइम में, हर टेंप्लेट टाइप के 300 से ज़्यादा वर्शन पब्लिश किए जाते हैं, तो सबसे पुराने वर्शन मिटा दिए जाते हैं. इस तरह, उस टाइप के ज़्यादा से ज़्यादा 300 वर्शन सेव किए जा सकते हैं.

जब भी पैरामीटर अपडेट किए जाते हैं, तो Remote Config नया वर्शन वाला Remote Config टेंप्लेट बनाता है. साथ ही, पिछले टेंप्लेट को एक वर्शन के तौर पर सेव करता है. ज़रूरत पड़ने पर, इसे वापस पाया जा सकता है या इस पर रोल बैक किया जा सकता है. वर्शन नंबर , Remote Config में सेव की गई शुरुआती वैल्यू से क्रम से बढ़ते हैं. सभी टेंप्लेट में, यहां दिखाया गया version फ़ील्ड शामिल होता है. इसमें, उस खास वर्शन के बारे में मेटाडेटा होता है.

Remote Config कंसोल पर मौजूद, बदलाव का इतिहास पेज से, Remote Config के टेंप्लेट मिटाए जा सकते हैं.

टेम्पलेट वर्शन मैनेज करनाRemote Config

इस सेक्शन में, Remote Config टेंप्लेट के वर्शन मैनेज करने का तरीका बताया गया है.

Remote Config टेंप्लेट के सेव किए गए सभी वर्शन की सूची देखना

टेंप्लेट के सेव किए गए सभी वर्शन की सूची देखी जा सकती है.Remote Config ऐसा करने के लिए:

Firebase कंसोल

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

सेव किए गए हर वर्शन के लिए दिखने वाली जानकारी में यह शामिल होता है कि बदलाव, कंसोल, REST API, रोलबैक की वजह से हुए हैं या टेंप्लेट को ज़बरदस्ती सेव करने की वजह से, उनमें धीरे-धीरे बदलाव हुए हैं.

Firebase CLI

firebase remoteconfig:versions:list

दिखाए जाने वाले वर्शन की संख्या सीमित करने के लिए, --limit विकल्प का इस्तेमाल करें. सभी वर्शन फ़ेच करने के लिए, '0' पास करें.

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

Java

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());
}

REST

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

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

```json
{
  "versions": [{
    "version_number": "6",
    "update_time": "2022-05-12T02:38:54Z",
    "update_user": {
      "name": "Jane Smith",
      "email": "jane@developer.org",
      "imageUrl": "https://lh3.googleusercontent.com/a-/..."
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]
}
```

Remote Config टेंप्लेट का कोई खास वर्शन वापस पाना

टेंप्लेट का सेव किया गया कोई भी खास वर्शन वापस पाया जा सकता है.Remote Config सेव किए गए टेंप्लेट का वर्शन वापस पाने के लिए:

Firebase कंसोल

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

मौजूदा वर्शन और सेव किए गए किसी दूसरे वर्शन के बीच का अंतर देखने के लिए, किसी ऐसे वर्शन के कॉन्टेक्स्ट मेन्यू पर कर्सर घुमाएं जिसे चुना नहीं गया है. इसके बाद, चुने गए वर्शन से तुलना करें को चुनें.

Firebase CLI

firebase remoteconfig:get -v VERSION_NUMBER

ज़रूरी नहीं: -o, FILENAME का इस्तेमाल करके, आउटपुट को किसी तय की गई फ़ाइल में लिखा जा सकता है.

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

Java

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());

REST

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

यूआरएल पैरामीटर ?version_number सिर्फ़ GET कार्रवाइयों के लिए मान्य है. इसका इस्तेमाल, अपडेट के लिए वर्शन नंबर तय करने के लिए नहीं किया जा सकता. ?version_number पैरामीटर के बिना, इसी तरह का गेट अनुरोध करने पर, मौजूदा टेंप्लेट वापस पाया जा सकेगा.

Remote Config टेंप्लेट के सेव किए गए किसी खास वर्शन पर रोल बैक करना

टेंप्लेट के सेव किए गए किसी भी वर्शन पर रोल बैक किया जा सकता है. किसी टेंप्लेट पर रोल बैक करने के लिए:

Firebase कंसोल

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

Firebase CLI

firebase remoteconfig:rollback -v VERSION_NUMBER

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

Java

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());
  }
}

REST

सेव किए गए Remote Config टेंप्लेट पर रोल बैक करने के लिए, कस्टम तरीके :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}'

जवाब में, अब चालू टेंप्लेट का कॉन्टेंट शामिल होता है. साथ ही, इसमें नए वर्शन का मेटाडेटा भी होता है.

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

Remote Config टेंप्लेट मिटाना

Remote Config टेंप्लेट को Firebase कंसोल से मिटाया जा सकता है. टेंप्लेट मिटाने के लिए:Remote Config

1. Remote Config पैरामीटर पेज पर, बदलाव का इतिहास पर क्लिक करें.
  1. उस टेंप्लेट पर टॉगल करें जिसे मिटाना है. इसके बाद, ज़्यादा पर क्लिक करें. फिर, मिटाएं को चुनें.

  2. मिटाने की पुष्टि करने के लिए, मिटाएं पर क्लिक करें.

Remote Config टेंप्लेट डाउनलोड और पब्लिश करना

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

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

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

इस तरीके का इस्तेमाल, कॉन्फ़िगरेशन को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में माइग्रेट करने या किसी नए प्रोजेक्ट में, पहले से मौजूद प्रोजेक्ट के पैरामीटर और वैल्यू डालने के लिए भी किया जा सकता है.

A/B टेस्टिंग के प्रयोग में, खास तौर पर वैरिएंट के तौर पर बनाए गए पैरामीटर और पैरामीटर वैल्यू, एक्सपोर्ट किए गए टेंप्लेट में शामिल नहीं होते.A/B Testing

Remote Config टेंप्लेट एक्सपोर्ट और इंपोर्ट करने के लिए:

  1. Remote Config के मौजूदा टेंप्लेट को डाउनलोड करें.Remote Config
  2. टेम्प्लेटRemote Config की पुष्टि करें.
  3. टेम्प्लेट को Remote Config पब्लिश करें.

Remote Config के मौजूदा टेंप्लेट को डाउनलोड करना

चालू Remote Config टेंप्लेट को JSON फ़ॉर्मैट में डाउनलोड करने के लिए, यह तरीका अपनाएं:

Firebase कंसोल

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

Firebase CLI

firebase remoteconfig:get -o filename

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

Java

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

REST

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

इस कमांड से, JSON पेलोड एक फ़ाइल में और हेडर (ईटैग सहित) एक अलग headers फ़ाइल में आउटपुट होते हैं.

Remote Config के टेंप्लेट की पुष्टि करना

Firebase Admin SDK या REST API का इस्तेमाल करके, टेंप्लेट के अपडेट को पब्लिश करने से पहले उनकी पुष्टि की जा सकती है. Firebase Admin SDK Firebase CLI या Firebase कंसोल से पब्लिश करने की कोशिश करने पर भी टेंप्लेट की पुष्टि की जाती है.FirebaseFirebase

टेंप्लेट की पुष्टि करने की प्रोसेस में, गड़बड़ियां देखी जाती हैं. जैसे, पैरामीटर और शर्तों के लिए डुप्लीकेट कुंजियां, शर्तों के अमान्य नाम या ऐसी शर्तें जो मौजूद नहीं हैं या गलत फ़ॉर्मैट वाले ईटैग. उदाहरण के लिए, अगर किसी अनुरोध में, अनुमति से ज़्यादा कुंजियां (2,000) शामिल हैं, तो गड़बड़ी का मैसेज Param count too large दिखेगा.

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

Java

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());
  }
}

REST

पब्लिश करने के अनुरोध में, यूआरएल पैरामीटर ?validate_only=true जोड़कर, टेंप्लेट के अपडेट की पुष्टि करें:

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?validate_only=true -d @filename

अगर आपके टेंप्लेट की पुष्टि हो गई है, तो कर्ल कमांड, सबमिट किया गया JSON टेंप्लेट दिखाता है. साथ ही, सेव की गई headers फ़ाइल में, आपको HTTP/2 स्टेटस 200 और -0 सफ़िक्स वाला अपडेट किया गया ईटैग दिखेगा. अगर आपके टेंप्लेट की पुष्टि नहीं हुई है, तो आपको JSON रिस्पॉन्स में, पुष्टि से जुड़ी गड़बड़ी दिखेगी. साथ ही, आपकी headers फ़ाइल में, 200 के अलावा कोई दूसरा रिस्पॉन्स (और कोई ईटैग नहीं) दिखेगा.

Remote Config टेंप्लेट को पब्लिश करना

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

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

पब्लिश करने के बाद, पैरामीटर और वैल्यू में किए गए बदलाव, आपके ऐप्लिकेशन और उपयोगकर्ताओं के लिए तुरंत उपलब्ध हो जाते हैं. ज़रूरत पड़ने पर, पिछले वर्शन पर रोल बैक किया जा सकता है .

अपने टेंप्लेट को पब्लिश करने के लिए, इन कमांड का इस्तेमाल करें:

Firebase कंसोल

  1. Remote Config पैरामीटर या शर्तें टैब में जाकर, मेन्यू खोलें. इसके बाद, किसी फ़ाइल से पब्लिश करें को चुनें.
  2. जब कहा जाए, तब ब्राउज़ करें पर क्लिक करें. इसके बाद, उस Remote Config फ़ाइल पर जाएं और उसे चुनें जिसे पब्लिश करना है. फिर, चुनें पर क्लिक करें.
  3. फ़ाइल की पुष्टि की जाएगी. अगर पुष्टि हो जाती है, तो पब्लिश करें पर क्लिक करके, कॉन्फ़िगरेशन को अपने ऐप्लिकेशन और उपयोगकर्ताओं के लिए तुरंत उपलब्ध कराया जा सकता है.

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

Java

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

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 कमांड के लिए, कॉन्टेंट तय करने के लिए, "@" वर्ण का इस्तेमाल किया जा सकता है. इसके बाद, फ़ाइल का नाम डालें.

Remote Config दिलचस्पी के मुताबिक विज्ञापन बनाने की सुविधा और शर्तें, डाउनलोड किए गए टेंप्लेट में शामिल होती हैं. इसलिए, किसी दूसरे प्रोजेक्ट में पब्लिश करने की कोशिश करते समय, इन सीमाओं के बारे में जानना ज़रूरी है:

  • दिलचस्पी के मुताबिक विज्ञापन बनाने की सुविधा को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में इंपोर्ट नहीं किया जा सकता.

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

  • शर्तों को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में इंपोर्ट किया जा सकता है. हालांकि, ध्यान दें कि पब्लिश करने से पहले, टारगेट प्रोजेक्ट में शर्तों के लिए खास वैल्यू (जैसे, ऐप्लिकेशन आईडी या ऑडियंस) मौजूद होनी चाहिए.

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

  • अगर पब्लिश किए जाने वाले टेंप्लेट में ऐसी शर्तें शामिल हैं जो Google Analytics पर निर्भर करती हैं, तो Analytics टारगेट प्रोजेक्ट में चालू होना चाहिए.

Remote Config टेंप्लेट की डिफ़ॉल्ट वैल्यू डाउनलोड करना

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

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

इन फ़ाइलों को Android ऐप्लिकेशन के लिए XML फ़ॉर्मैट में, iOS ऐप्लिकेशन के लिए प्रॉपर्टी लिस्ट (plist) फ़ॉर्मैट में, और वेब ऐप्लिकेशन के लिए JSON फ़ॉर्मैट में डाउनलोड किया जा सकता है.

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

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

REST

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 का इस्तेमाल करें. यह इस पर निर्भर करता है कि आपको किस फ़ाइल फ़ॉर्मैट में डाउनलोड करना है.

Firebase कंसोल

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

अपने ऐप्लिकेशन में, Remote Config डिफ़ॉल्ट वैल्यू इंपोर्ट करने के बारे में ज़्यादा जानने के लिए, यह लेख पढ़ें: