रिमोट कॉन्फ़िगरेशन ट्रिगर (पहली जनरेशन)

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

रिमोट कॉन्फ़िगरेशन फ़ंक्शन को ट्रिगर करना

Remote Config इवेंट के लिए हैंडलर तय करने के लिए, functions.remoteConfig मॉड्यूल के onUpdate() फ़ंक्शन का इस्तेमाल करें. TemplateVersion से मिला onUpdate ऑब्जेक्ट, टेंप्लेट अपडेट के लिए मुख्य मेटाडेटा फ़ील्ड दिखाता है. जैसे, वर्शन नंबर और अपडेट का समय. अपडेट करने वाले उपयोगकर्ता का ईमेल पता भी वापस पाया जा सकता है. साथ ही, उसका नाम और अगर उपलब्ध हो, तो इमेज भी वापस पाई जा सकती है.

यहां Remote Config फ़ंक्शन का एक उदाहरण दिया गया है. यह फ़ंक्शन, अपडेट किए गए हर वर्शन और उसकी जगह इस्तेमाल किए गए वर्शन के बीच का अंतर दिखाता है. यह फ़ंक्शन, टेंप्लेट ऑब्जेक्ट के versionNumber फ़ील्ड की जांच करता है. साथ ही, मौजूदा (हाल ही में अपडेट किया गया) वर्शन और उससे एक नंबर कम वाला वर्शन वापस लाता है:

exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => {
  return admin.credential.applicationDefault().getAccessToken()
    .then(accessTokenObj => {
      return accessTokenObj.access_token;
    })
    .then(accessToken => {
      const currentVersion = versionMetadata.versionNumber;
      const templatePromises = [];
      templatePromises.push(getTemplate(currentVersion, accessToken));
      templatePromises.push(getTemplate(currentVersion - 1, accessToken));

      return Promise.all(templatePromises);
    })
    .then(results => {
      const currentTemplate = results[0];
      const previousTemplate = results[1];

      const diff = jsonDiff.diffString(previousTemplate, currentTemplate);

      functions.logger.log(diff);

      return null;
    }).catch(error => {
      functions.logger.error(error);
      return null;
    });
});

इस सैंपल में, json-diff और request-promise मॉड्यूल का इस्तेमाल किया गया है. इससे, टेंप्लेट ऑब्जेक्ट पाने के लिए अंतर और अनुरोध बनाया जा सकता है. Remote Config क्लाइंट लॉजिक और Firebase Cloud Messaging को शामिल करने वाले सैंपल के लिए, रीयल टाइम में रिमोट कॉन्फ़िगरेशन के अपडेट लागू करना लेख पढ़ें.