تنظیمات از راه دور را با توابع ابری گسترش دهید


می‌توانید عملکردی را در پاسخ به رویدادهای Remote Config ، از جمله انتشار نسخه پیکربندی جدید یا بازگشت به نسخه قدیمی‌تر، فعال کنید. این راهنما نحوه ایجاد یک تابع پس زمینه Remote Config را توضیح می دهد که تفاوت دو نسخه الگو را انجام می دهد.

یک تابع Remote Config را فعال کنید

برای تعریف یک کنترل کننده برای رویدادهای Remote Config ، از تابع onUpdate() ماژول functions.remoteConfig استفاده کنید. شی 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 را در بر می‌گیرد، به انتشار به‌روزرسانی‌های پیکربندی از راه دور در زمان واقعی مراجعه کنید.