রিমোট কনফিগারেশন ট্রিগার (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;
    });
});

This sample uses the json-diff and request-promise modules to create the diff and build the request to get the template object. For a sample that incorporates Remote Config client logic as well as Firebase Cloud Messaging , see Propagate Remote Config updates in real time .