यह दस्तावेज़ बताता है कि आप JSON-स्वरूपित पैरामीटर और दूरस्थ कॉन्फ़िगरेशन टेम्पलेट के रूप में ज्ञात शर्तों के सेट को कैसे प्रोग्रामेटिक रूप से पढ़ और संशोधित कर सकते हैं। यह आपको बैकएंड पर टेम्पलेट परिवर्तन करने की अनुमति देता है जो क्लाइंट ऐप क्लाइंट लाइब्रेरी का उपयोग करके प्राप्त कर सकता है।
इस गाइड में वर्णित रिमोट कॉन्फिगरेस्ट रीस्ट एपीआई या एडमिन एसडीके का उपयोग करके, आप फायरबैस कंसोल में टेम्प्लेट का प्रबंधन कर सकते हैं ताकि रिमोट कॉन्फिगरेशन परिवर्तन को सीधे अपनी प्रक्रियाओं में एकीकृत किया जा सके। उदाहरण के लिए, दूरस्थ विन्यास बैकएंड एपीआई के साथ, आप कर सकते हैं:
- शेड्यूलिंग दूरस्थ कॉन्फ़िगरेशन अद्यतन । क्रोन जॉब के संयोजन में एपीआई कॉल का उपयोग करके, आप एक नियमित समय पर दूरस्थ कॉन्फ़िगरेशन मान बदल सकते हैं।
- बैच कॉन्फ़िगरेशन आयात मानों को कुशलता से अपने मालिकाना सिस्टम से Firebase रिमोट कॉन्फ़िगरेशन में संक्रमण करने के लिए।
फायरबेस के लिए क्लाउड फ़ंक्शंस के साथ रिमोट कॉन्फिगरेशन का उपयोग करें , जो सर्वर-साइड होने वाली घटनाओं के आधार पर आपके ऐप में मूल्यों को बदल रहा है। उदाहरण के लिए, आप अपने ऐप में एक नई सुविधा को बढ़ावा देने के लिए रिमोट कॉन्फिगरेशन का उपयोग कर सकते हैं, और एक बार जब आप पर्याप्त लोगों को नई सुविधा के साथ इंटरैक्ट कर लेते हैं, तो उस प्रमोशन को स्वचालित रूप से बंद कर देते हैं।
इस मार्गदर्शिका के निम्नलिखित भाग उन कार्यों का वर्णन करते हैं जो आप रिमोट कॉन्फिगर बैकएंड एपीआई के साथ कर सकते हैं। REST API के माध्यम से इन कार्यों को करने वाले कुछ कोड की समीक्षा करने के लिए, इन नमूना ऐप्स में से एक देखें:
- फायरबेस रिमोट कॉन्फिगरेशन रेस एपीआई जावा क्विकस्टार्ट
- Firebase Remote Config Rest API Node.js क्विकस्टार्ट
- फायरबेस रिमोट कॉन्फिगरेशन रेस एपीआई पायथन क्विकस्टार्ट
Firebase व्यवस्थापक SDK का उपयोग करके दूरस्थ कॉन्फ़िगरेशन को संशोधित करें
एडमिन SDK सर्वर लाइब्रेरी का एक सेट है जो आपको विशेषाधिकार प्राप्त वातावरण से Firebase के साथ बातचीत करने देता है। रिमोट कॉन्फिगर करने के लिए अपडेट करने के अलावा, एडमिन SDK रियलटाइम डेटाबेस से फायरबैस ऑर्टिक टोकन को पढ़ने और लिखने में सक्षम बनाता है। व्यवस्थापक SDK पूर्वापेक्षाएँ और सेटअप के बारे में अधिक जानने के लिए, अपने सर्वर में Firebase Admin SDK जोड़ें देखें।
एक विशिष्ट दूरस्थ कॉन्फ़िगरेशन प्रवाह में, आप वर्तमान टेम्पलेट प्राप्त कर सकते हैं, कुछ मापदंडों या पैरामीटर समूहों और शर्तों को संशोधित कर सकते हैं, टेम्पलेट को मान्य कर सकते हैं और फिर इसे प्रकाशित कर सकते हैं। उन एपीआई कॉल करने से पहले, आपको एसडीके से अनुरोधों को अधिकृत करना होगा।
एसडीके को आरम्भ करें और एपीआई अनुरोधों को अधिकृत करें
जब आप कोई पैरामीटर के साथ व्यवस्थापक SDK को प्रारंभ करते हैं, तो SDK Google अनुप्रयोग डिफ़ॉल्ट क्रेडेंशियल का उपयोग करता है और FIREBASE_CONFIG
वातावरण चर से विकल्प पढ़ता है। यदि FIREBASE_CONFIG
चर की सामग्री एक {
शुरू होती है, तो इसे JSON ऑब्जेक्ट के रूप में पार्स किया जाएगा। अन्यथा SDK मानता है कि स्ट्रिंग 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
05357 ए 6060जावा
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
0629341 सी 30जावा
0937 सीएफएफ 20 यह सत्यापन प्रक्रिया त्रुटियों के लिए जांचती है जैसे कि मापदंडों और शर्तों के लिए डुप्लिकेट कुंजियाँ, अमान्य स्थिति नाम या कोई भी नहीं, या गलत सूचनाएँ। उदाहरण के लिए, अनुमत संख्या -२००० से अधिक वाला एक अनुरोध-त्रुटि संदेश लौटाएगा, 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 का उपयोग करके रिमोट कॉन्फिगर करें
यह खंड https://firebaseremoteconfig.googleapis.com
पर रिमोट कॉन्फिगर रीस्ट एपीआई की मुख्य क्षमताओं का वर्णन करता है। पूर्ण विवरण के लिए, एपीआई संदर्भ देखें।
एपीआई अनुरोधों को प्रमाणित और अधिकृत करने के लिए एक पहुंच टोकन प्राप्त करें
फायरबेस परियोजनाएं Google सेवा खातों का समर्थन करती हैं , जिसका उपयोग आप अपने ऐप सर्वर या विश्वसनीय वातावरण से फायरबेस सर्वर एपीआई को कॉल करने के लिए कर सकते हैं। यदि आप स्थानीय रूप से कोड विकसित कर रहे हैं या अपने आवेदन को परिसर में तैनात कर रहे हैं, तो आप सर्वर अनुरोधों को अधिकृत करने के लिए इस सेवा खाते के माध्यम से प्राप्त क्रेडेंशियल्स का उपयोग कर सकते हैं।
एक सेवा खाते को प्रमाणित करने और फायरबेस सेवाओं तक पहुंचने के लिए इसे अधिकृत करने के लिए, आपको JSON प्रारूप में एक निजी कुंजी फ़ाइल बनानी होगी।
अपने सेवा खाते के लिए एक निजी कुंजी फ़ाइल उत्पन्न करने के लिए:
Firebase कंसोल में, सेटिंग्स> सेवा खाते खोलें।
Generate New Private Key पर क्लिक करें , फिर Generate Key पर क्लिक करके पुष्टि करें ।
JSON फ़ाइल को कुंजी से सुरक्षित रूप से संग्रहीत करें।
एक सेवा खाते के माध्यम से अधिकृत करते समय, आपके पास अपने आवेदन को प्रमाणिकता प्रदान करने के लिए दो विकल्प होते हैं। आप या तो GOOGLE_APPLICATION_CREDENTIALS वातावरण चर सेट कर सकते हैं, या आप कोड में सेवा खाता कुंजी के लिए पथ को स्पष्ट रूप से पारित कर सकते हैं। पहला विकल्प अधिक सुरक्षित है और दृढ़ता से अनुशंसित है।
पर्यावरण चर सेट करने के लिए:
JSON फ़ाइल के फ़ाइल पथ में वातावरण चर GOOGLE_APPLICATION_CREDENTIALS सेट करें जिसमें आपका खाता खाता कुंजी हो। यह चर केवल आपके वर्तमान शेल सत्र पर लागू होता है, इसलिए यदि आप एक नया सत्र खोलते हैं, तो चर को फिर से सेट करें।
लिनक्स या macOS
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
खिड़कियाँ
पॉवरशेल के साथ:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
उपरोक्त चरणों को पूरा करने के बाद, एप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल (ADC) आपके क्रेडेंशियल्स को स्पष्ट रूप से निर्धारित करने में सक्षम है, जिससे आप गैर-Google वातावरण में परीक्षण या चलने के दौरान सेवा खाता क्रेडेंशियल्स का उपयोग कर सकते हैं।
अपनी पसंदीदा भाषा के लिए Google API क्लाइंट लाइब्रेरी के साथ अपने फायरबेस क्रेडेंशियल्स का उपयोग एक अल्पकालिक 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 {
GoogleCredential googleCredential = GoogleCredential
.fromStream(new FileInputStream("service-account.json"))
.createScoped(Arrays.asList(SCOPES));
googleCredential.refreshToken();
return googleCredential.getAccessToken();
}
आपके एक्सेस टोकन की समय सीमा समाप्त होने के बाद, अपडेटेड टोकन को पुनः प्राप्त करने के लिए टोकन रीफ्रेश विधि को स्वचालित रूप से कहा जाता है।
दूरस्थ कॉन्फ़िगरेशन तक पहुँच को अधिकृत करने के लिए, स्कोप https://www.googleapis.com/auth/firebase.remoteconfig
अनुरोध 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
यह एपीआई कॉल निम्नलिखित JSON को लौटाता है, साथ ही एक अलग हेडर जिसमें एक ETag शामिल है जिसे आप बाद के अनुरोध के लिए उपयोग करते हैं।
दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को मान्य करें
वैकल्पिक रूप से, आप अपने अपडेट को प्रकाशित करने से पहले सत्यापित कर सकते हैं। अपने प्रकाशन अनुरोध को जोड़कर टेम्प्लेट अद्यतनों को मान्य करें URL पैरामीटर का अनुरोध करें ?validate_only=true
Validate_only ?validate_only=true
। प्रतिक्रिया में, एक स्थिति कोड 200 और प्रत्यय -0
साथ एक अद्यतन etag का मतलब है कि आपका अपडेट सफलतापूर्वक सत्यापित किया गया था। कोई भी गैर-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
आदेश।
दूरस्थ कॉन्फ़िगरेशन स्थितियों को संशोधित करें
आप प्रोग्राम को दूरस्थ विन्यास स्थिति और सशर्त मान को संशोधित कर सकते हैं। REST API के साथ, आपको टेम्प्लेट प्रकाशित करने से पहले शर्तों को संशोधित करने के लिए टेम्पलेट को सीधे संपादित करना होगा।
{ "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 स्टेटस कोड हो सकता है:
|
401 | एक प्राधिकरण त्रुटि उत्पन्न हुई (कोई पहुंच टोकन प्रदान नहीं किया गया था या क्लाउड डेवलपर कंसोल में आपके प्रोजेक्ट में फायरबेस रिमोट कॉन्फ़िगरेशन रीस्ट एपीआई नहीं जोड़ा गया है) |
403 | प्रमाणीकरण त्रुटि हुई (गलत पहुंच टोकन प्रदान किया गया था) |
500 | एक आंतरिक त्रुटि हुई। यदि यह त्रुटि होती है, तो फायरबेस सपोर्ट टिकट फाइल करें |
200 की स्थिति कोड का मतलब है कि दूरस्थ कॉन्फ़िगरेशन टेम्पलेट (पैरामीटर, प्रोजेक्ट के लिए मान और स्थितियां) अपडेट किया गया है और अब उन एप्लिकेशन के लिए उपलब्ध है जो इस प्रोजेक्ट का उपयोग करते हैं। अन्य स्थिति कोड इंगित करते हैं कि पहले से मौजूद दूरस्थ कॉन्फ़िगरेशन टेम्पलेट अभी भी प्रभावी है।
अपने टेम्प्लेट में अपडेट सबमिट करने के बाद, यह सत्यापित करने के लिए फायरबेस कंसोल पर जाएं कि आपके परिवर्तन अपेक्षित रूप से दिखाई दें। यह महत्वपूर्ण है क्योंकि शर्तों का आदेश प्रभावित करता है कि उनका मूल्यांकन कैसे किया जाता है (पहली शर्त जो true
मूल्यांकन करती true
) प्रभावी होती है।
ETag उपयोग और मजबूर अपडेट
दूरस्थ कॉन्फ़िगरेशन REST API रेस की स्थिति और संसाधनों के ओवरलैपिंग अपडेट को रोकने के लिए एक इकाई टैग (ETag) का उपयोग करता है। ETags के बारे में अधिक जानने के लिए, ETag - HTTP देखें।
REST API के लिए, Google अनुशंसा करता है कि आप सबसे हाल ही में GET
कमांड द्वारा दिए गए ETag को कैश GET
, और PUT
कमांड जारी करते समय If-Match
अनुरोध हेडर में उस ETag मूल्य का उपयोग करें। यदि आपका PUT
कमांड HTTPS Status कोड 409 में परिणाम करता है, तो आपको अपने अगले PUT
कमांड के साथ उपयोग करने के लिए एक नया ETag और टेम्पलेट प्राप्त करने के लिए एक नया GET
कमांड जारी करना चाहिए।
आप दूरस्थ विन्यास टेम्प्लेट को निम्नानुसार अद्यतन करने के लिए मजबूर करके ईटाग, और उससे मिलने वाले संरक्षण को दरकिनार कर सकते हैं: If-Match: *
हालांकि, इस दृष्टिकोण की अनुशंसा नहीं की जाती है, क्योंकि यह आपके दूरस्थ कॉन्फ़िगरेशन के अपडेट के नुकसान का कारण बनता है टेम्पलेट यदि कई क्लाइंट दूरस्थ कॉन्फ़िगरेशन टेम्पलेट को अपडेट कर रहे हैं। इस तरह का संघर्ष एपीआई का उपयोग करने वाले कई ग्राहकों के साथ हो सकता है, या एपीआई क्लाइंट और फायरबेस कंसोल उपयोगकर्ताओं के परस्पर विरोधी अपडेट के साथ हो सकता है।
दूरस्थ कॉन्फ़िगरेशन टेम्पलेट संस्करणों के प्रबंधन के लिए मार्गदर्शन के लिए, दूरस्थ कॉन्फ़िगरेशन टेम्पलेट और संस्करण देखें ।