| टेंप्लेट का टाइप चुनें: | क्लाइंट टेंप्लेट सर्वर टेंप्लेट |
Remote Config टेंप्लेट, JSON फ़ॉर्मैट में पैरामीटर और शर्तों के सेट होते हैं. इन्हें आपके Firebase प्रोजेक्ट के लिए बनाया जाता है. क्लाइंट टेंप्लेट, ऐप्लिकेशन के उन इंस्टेंस को कॉन्फ़िगरेशन उपलब्ध कराते हैं जो Remote Config के लिए Firebase क्लाइंट SDK टूल लागू करते हैं. इनमें Apple, Android, वेब, Flutter, Unity, और C++ ऐप्लिकेशन शामिल हैं.
अपने क्लाइंट टेंप्लेट में बदलाव करने और उसे मैनेज करने के लिए, Firebase कंसोल का इस्तेमाल किया जा सकता है. पैरामीटर पेज और शर्तें पेज पर, टेंप्लेट के कॉन्टेंट को ग्राफ़िकल फ़ॉर्मैट में देखने के लिए, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन पर जाएं.
अपने क्लाइंट टेंप्लेट में बदलाव करने और उसे मैनेज करने के लिए, Remote Config REST API और Admin SDK या 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"
}
}
वर्शन मैनेज करने से जुड़े ये टास्क, Firebase कंसोल में किए जा सकते हैं. इसके लिए, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन पर जाएं:
- सेव किए गए सभी टेंप्लेट वर्शन की सूची देखना
- कोई खास वर्शन वापस लाना
- क्लाइंट के किसी खास वर्शन पर रोल बैक करना
- बदलाव का इतिहास पेज से Remote Config टेंप्लेट मिटाएं.
Firebase सीएलआई और Remote Config बैकएंड एपीआई का इस्तेमाल करके, टेंप्लेट की सूची बनाई जा सकती है, टेंप्लेट वापस लाए जा सकते हैं, और टेंप्लेट को रोल बैक किया जा सकता है.
हर टेंप्लेट टाइप के लिए, सेव किए गए वर्शन की कुल संख्या 300 हो सकती है. इनमें 300 क्लाइंट टेंप्लेट और 300 सर्वर टेंप्लेट शामिल हैं. इसमें मिटाए गए टेंप्लेट के सेव किए गए वर्शन नंबर भी शामिल हैं. अगर किसी प्रोजेक्ट के दौरान, हर टेंप्लेट टाइप के लिए 300 से ज़्यादा टेंप्लेट वर्शन पब्लिश किए जाते हैं, तो सबसे पुराने वर्शन मिटा दिए जाते हैं. इससे उस टाइप के ज़्यादा से ज़्यादा 300 वर्शन ही सेव रहते हैं.
पैरामीटर अपडेट करने पर, Remote Config हर बार एक नया Remote Config टेंप्लेट बनाता है. साथ ही, पिछले टेंप्लेट को एक वर्शन के तौर पर सेव करता है. ज़रूरत पड़ने पर, इस वर्शन को वापस लाया जा सकता है या इस पर वापस जाया जा सकता है. वर्शन नंबर, Remote Config की ओर से सेव की गई शुरुआती वैल्यू से क्रम से बढ़ते हैं.
सभी टेंप्लेट में, दिखाए गए तरीके से version फ़ील्ड शामिल होता है. इसमें उस वर्शन का मेटाडेटा होता है.
Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > बदलाव का इतिहास पेज पर जाकर, ज़रूरत के हिसाब से Remote Config टेंप्लेट मिटाए जा सकते हैं.
Remote Config टेंप्लेट के वर्शन मैनेज करना
इस सेक्शन में, Remote Config टेंप्लेट के वर्शन मैनेज करने का तरीका बताया गया है.
प्रोग्राम के हिसाब से टेंप्लेट बनाने, उनमें बदलाव करने, और उन्हें सेव करने के तरीके के बारे में ज़्यादा जानने के लिए, प्रोग्राम के हिसाब से Remote Config में बदलाव करना लेख पढ़ें.
Remote Config टेंप्लेट के सेव किए गए सभी वर्शन की सूची
Remote Config टेंप्लेट के सेव किए गए सभी वर्शन की सूची देखी जा सकती है. ऐसा करने के लिए:
Firebase कंसोल
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं.
सबसे ऊपर दाईं ओर मौजूद, "घड़ी" आइकॉन को चुनें.
इससे बदलाव का इतिहास पेज खुलता है. इसमें दाईं ओर मौजूद सूची मेन्यू में, सेव किए गए टेंप्लेट के सभी वर्शन की सूची दिखती है.
सेव किए गए हर वर्शन के लिए दिखाई गई जानकारी में यह शामिल होता है कि बदलाव, Firebase कंसोल, REST API, रोलबैक से शुरू हुए थे या वे टेंप्लेट को ज़बरदस्ती सेव करने से हुए बदलाव थे.
Firebase सीएलआई
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 token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:listVersions
टेंप्लेट की सूची में, सेव किए गए सभी वर्शन का मेटाडेटा शामिल होता है. इसमें अपडेट का समय, अपडेट करने वाले उपयोगकर्ता की जानकारी, और अपडेट करने का तरीका शामिल होता है. यहां वर्शन एलिमेंट का एक उदाहरण दिया गया है:
{
"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 कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > बदलाव का इतिहास पेज पर जाएं.
डिफ़ॉल्ट रूप से, पेज पर मौजूदा समय में चालू टेंप्लेट दिखता है. कोई दूसरा वर्शन देखने के लिए, उसे दाईं ओर मौजूद ब्यौरे वाले पैनल से चुनें.
किसी ऐसे वर्शन के कॉन्टेक्स्ट मेन्यू पर कर्सर घुमाएं जिसे नहीं चुना गया है. इसके बाद, चुने गए वर्शन से तुलना करें को चुनें. इससे आपको चालू टेंप्लेट और सेव किए गए किसी अन्य वर्शन के बीच के अंतर की पूरी जानकारी दिखेगी
Firebase सीएलआई
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 token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?version_number=6
यूआरएल पैरामीटर ?version_number सिर्फ़ GET कार्रवाइयों के लिए मान्य है;
अपडेट के लिए वर्शन नंबर तय करने के लिए, इसका इस्तेमाल नहीं किया जा सकता. ?version_number पैरामीटर के बिना, इसी तरह के get अनुरोध से, मौजूदा चालू टेंप्लेट को वापस लाया जा सकता है.
Remote Config टेंप्लेट के सेव किए गए किसी वर्शन पर रोल बैक करना
टेंप्लेट के सेव किए गए किसी भी वर्शन पर रोल बैक किया जा सकता है. टेंप्लेट को रोल बैक करने का तरीका यहां बताया गया है:
Firebase कंसोल
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > बदलाव का इतिहास पेज पर जाएं.
पेज पर सबसे ऊपर दाईं ओर मौजूद विकल्प बटन पर जाएं. यहां आपको टेंप्लेट के वे पिछले वर्शन दिखेंगे जिन्हें रोलबैक किया जा सकता है.
इस पर क्लिक करके पुष्टि सिर्फ़ तब करें, जब आपको पक्के तौर पर उस वर्शन पर वापस जाना हो और सभी ऐप्लिकेशन और उपयोगकर्ताओं के लिए, उन वैल्यू का इस्तेमाल तुरंत करना हो.
Firebase सीएलआई
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 के साथ एचटीटीपी POST जारी करें. साथ ही, अनुरोध के मुख्य हिस्से में, लागू करने के लिए खास वर्शन डालें. उदाहरण के लिए:
curl --compressed -D headers -H "Authorization: Bearer token" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:rollback -d '{"version_number": 6}'जवाब में, अब चालू किए गए सेव किए गए टेंप्लेट का कॉन्टेंट और उसके नए वर्शन का मेटाडेटा शामिल होता है.
ध्यान दें कि रोलबैक की इस कार्रवाई से, नंबर वाला एक नया वर्शन बनता है. उदाहरण के लिए, वर्शन 10 से वर्शन 6 पर वापस जाने से, वर्शन 6 की एक नई कॉपी बन जाती है. यह कॉपी, ओरिजनल वर्शन से सिर्फ़ इस मायने में अलग होती है कि इसका वर्शन नंबर 11 होता है. ओरिजनल वर्शन 6 अब भी सेव है. हालांकि, ऐसा तब ही होगा, जब उसकी समयसीमा खत्म न हुई हो. साथ ही, वर्शन 11 चालू टेंप्लेट बन जाता है.
Remote Config टेंप्लेट मिटाना
Firebase कंसोल का इस्तेमाल करके, Remote Config टेंप्लेट मिटाए जा सकते हैं. टेंप्लेट मिटाने का तरीका यहां बताया गया है:
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं.
बदलाव का इतिहास पर क्लिक करें.जिस टेंप्लेट को मिटाना है उस पर टॉगल करें. इसके बाद,
ज़्यादा पर क्लिक करें और मिटाएं को चुनें.मिटाने की पुष्टि करने के लिए, मिटाएं पर क्लिक करें.
Remote Config टेंप्लेट डाउनलोड और पब्लिश करना
Remote Config टेंप्लेट डाउनलोड और पब्लिश करें, ताकि उन्हें अपने सोर्स कंट्रोल और बिल्ड सिस्टम में इंटिग्रेट किया जा सके. साथ ही, कॉन्फ़िगरेशन के अपडेट अपने-आप होने की सुविधा चालू की जा सके. इसके अलावा, कई प्रोजेक्ट में पैरामीटर और वैल्यू को सिंक किया जा सके.
फ़िलहाल चालू Remote Config टेंप्लेट को प्रोग्राम के हिसाब से या Firebase कंसोल से डाउनलोड किया जा सकता है. इसके बाद, एक्सपोर्ट की गई JSON फ़ाइल को अपडेट किया जा सकता है और उसे उसी प्रोजेक्ट में पब्लिश किया जा सकता है. इसके अलावा, उसे किसी नए या मौजूदा प्रोजेक्ट में पब्लिश किया जा सकता है.
उदाहरण के लिए, मान लें कि आपके पास कई प्रोजेक्ट हैं, जो आपके सॉफ़्टवेयर डेवलपमेंट लाइफ़साइकल के अलग-अलग चरणों को दिखाते हैं. जैसे, डेवलपमेंट, टेस्ट, स्टेजिंग, और प्रोडक्शन एनवायरमेंट. इस मामले में, पूरी तरह से टेस्ट किए गए टेंप्लेट को स्टेजिंग एनवायरमेंट से प्रोडक्शन एनवायरमेंट में प्रमोट किया जा सकता है. इसके लिए, आपको उसे स्टेजिंग प्रोजेक्ट से डाउनलोड करके, प्रोडक्शन प्रोजेक्ट में पब्लिश करना होगा.
इस तरीके का इस्तेमाल करके, कॉन्फ़िगरेशन को एक प्रोजेक्ट से दूसरे प्रोजेक्ट में माइग्रेट किया जा सकता है. इसके अलावा, किसी मौजूदा प्रोजेक्ट के पैरामीटर और वैल्यू को नए प्रोजेक्ट में भी भरा जा सकता है.
एक्सपोर्ट किए गए टेंप्लेट में, ऐसे पैरामीटर और पैरामीटर वैल्यू शामिल नहीं होती हैं जिन्हें खास तौर पर किसी A/B Testing एक्सपेरिमेंट में वैरिएंट के तौर पर बनाया गया हो.
Remote Config टेंप्लेट एक्सपोर्ट और इंपोर्ट करने के लिए:
- मौजूदा Remote Config टेंप्लेट डाउनलोड करें.
- Remote Config टेंप्लेट की पुष्टि करें.
- Remote Config टेंप्लेट पब्लिश करें.
मौजूदा Remote Config टेंप्लेट डाउनलोड करें
चालू Remote Config टेंप्लेट को JSON फ़ॉर्मैट में डाउनलोड करने के लिए, यह तरीका अपनाएं:
Firebase कंसोल
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर या शर्तें पेज पर जाएं.
मेन्यू खोलें और मौजूदा कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें को चुनें.जब कहा जाए, तब कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें पर क्लिक करें. इसके बाद, वह जगह चुनें जहां आपको फ़ाइल सेव करनी है. इसके बाद, सेव करें पर क्लिक करें.
Firebase सीएलआई
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 सीएलआई या Firebase कंसोल से पब्लिश करने पर भी टेंप्लेट की पुष्टि की जाती है.
टेंप्लेट की पुष्टि करने की प्रोसेस में, पैरामीटर और शर्तों के लिए डुप्लीकेट कुंजियों, अमान्य या मौजूद न होने वाली शर्तों के नाम या गलत तरीके से फ़ॉर्मैट किए गए ई-टैग जैसी गड़बड़ियों की जांच की जाती है. उदाहरण के लिए, अगर किसी अनुरोध में तय सीमा से ज़्यादा कुंजियां शामिल हैं, तो गड़बड़ी का मैसेज Param count too
large दिखेगा. अनुरोध में ज़्यादा से ज़्यादा 2,000 कुंजियां शामिल की जा सकती हैं.
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
अगर आपके टेंप्लेट की पुष्टि हो गई है, तो curl निर्देश, सबमिट किया गया JSON टेंप्लेट दिखाता है. साथ ही, सेव की गई headers फ़ाइल में, आपको एचटीटीपी/2 स्टेटस 200 और सफ़िक्स -0 के साथ अपडेट किया गया ETag दिखेगा. अगर आपके टेंप्लेट की पुष्टि नहीं हुई है, तो आपको JSON रिस्पॉन्स में पुष्टि से जुड़ी गड़बड़ी मिलेगी. साथ ही, आपकी headers फ़ाइल में 200 के अलावा कोई और रिस्पॉन्स (और कोई ETag नहीं) शामिल होगा.
Remote Config टेंप्लेट पब्लिश करना
टेंप्लेट डाउनलोड करने, JSON कॉन्टेंट में ज़रूरी बदलाव करने, और उसकी पुष्टि करने के बाद, उसे किसी प्रोजेक्ट में पब्लिश किया जा सकता है.
किसी टेंप्लेट को पब्लिश करने पर, मौजूदा कॉन्फ़िगरेशन टेंप्लेट की जगह अपडेट की गई फ़ाइल ले लेती है. साथ ही, टेंप्लेट का वर्शन एक नंबर बढ़ जाता है. पूरा कॉन्फ़िगरेशन बदल जाता है. इसलिए, अगर JSON फ़ाइल से किसी पैरामीटर को मिटाकर पब्लिश किया जाता है, तो वह पैरामीटर सर्वर से मिट जाता है. इसके बाद, वह क्लाइंट के लिए उपलब्ध नहीं रहता.
पैरामीटर और वैल्यू पब्लिश करने के बाद, उनमें किए गए बदलाव आपके ऐप्लिकेशन और उपयोगकर्ताओं के लिए तुरंत उपलब्ध हो जाते हैं. अगर ज़रूरी हो, तो पिछले वर्शन पर रोल बैक किया जा सकता है.
अपने टेंप्लेट को पब्लिश करने के लिए, इन निर्देशों का इस्तेमाल करें:
Firebase कंसोल
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर या शर्तें पेज पर जाएं.
मेन्यू खोलें और फ़ाइल से पब्लिश करें को चुनें.जब कहा जाए, तब ब्राउज़ करें पर क्लिक करें. इसके बाद, उस Remote Config फ़ाइल पर जाएं जिसे आपको पब्लिश करना है और उसे चुनें. इसके बाद, चुनें पर क्लिक करें.
Firebase, फ़ाइल की पुष्टि करता है. पुष्टि होने के बाद, पब्लिश करें पर क्लिक करें, ताकि कॉन्फ़िगरेशन आपके ऐप्लिकेशन और उपयोगकर्ताओं के लिए तुरंत उपलब्ध हो जाए.
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 ऐप्लिकेशन के लिए एक्सएमएल फ़ॉर्मैट, 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 कंसोल
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > रिमोट कॉन्फ़िगरेशन > पैरामीटर पेज पर जाएं.
मेन्यू खोलें और डिफ़ॉल्ट वैल्यू डाउनलोड करें को चुनें.जब आपसे पूछा जाए, तब उस फ़ाइल फ़ॉर्मैट के रेडियो बटन पर क्लिक करें जिसे आपको डाउनलोड करना है. इसके बाद, फ़ाइल डाउनलोड करें पर क्लिक करें.
अपने ऐप्लिकेशन में Remote Config की डिफ़ॉल्ट वैल्यू इंपोर्ट करने के बारे में ज़्यादा जानने के लिए, यह लेख पढ़ें:
Android के लिए, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू सेट करना
Unity के लिए, इन-ऐप्लिकेशन डिफ़ॉल्ट पैरामीटर वैल्यू सेट करना