রিমোট কনফিগারেশন ট্রিগার (1ম প্রজন্ম)

আপনি Firebase Remote Config ইভেন্টগুলির প্রতিক্রিয়ায় একটি ফাংশন ট্রিগার করতে পারেন, যার মধ্যে একটি নতুন কনফিগ সংস্করণ প্রকাশ করা বা পুরানো সংস্করণে ফিরে যাওয়া অন্তর্ভুক্ত। এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে একটি Remote Config ব্যাকগ্রাউন্ড ফাংশন তৈরি করতে হয় যা দুটি টেমপ্লেট সংস্করণের মধ্যে পার্থক্য (diff) নির্ণয় করে।

একটি রিমোট কনফিগ ফাংশন ট্রিগার করুন

Remote Config ইভেন্টের জন্য একটি হ্যান্ডলার নির্ধারণ করতে, functions.remoteConfig মডিউলের onUpdate() ফাংশনটি ব্যবহার করুন। onUpdate দ্বারা ফেরত আসা TemplateVersion অবজেক্টটিতে একটি টেমপ্লেট আপডেটের জন্য প্রয়োজনীয় মেটাডেটা ফিল্ডগুলো থাকে, যেমন ভার্সন নম্বর এবং আপডেটের সময়। এছাড়াও, আপনি আপডেটকারী ব্যবহারকারীর ইমেল, নাম এবং (যদি থাকে) একটি ছবিও সংগ্রহ করতে পারেন।

এখানে একটি Remote Config ফাংশনের উদাহরণ দেওয়া হলো, যা প্রতিটি আপডেট করা ভার্সন এবং তার দ্বারা প্রতিস্থাপিত ভার্সনের মধ্যে পার্থক্য (diff) রিটার্ন করে। ফাংশনটি টেমপ্লেট অবজেক্টের 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 উভয়ই অন্তর্ভুক্ত রয়েছে, তার জন্য “রিয়েল টাইমে রিমোট কনফিগ আপডেট প্রচার করুন” দেখুন।