راه‌اندازهای پیکربندی از راه دور (نسل اول)

شما می‌توانید در پاسخ به رویدادهای Firebase 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 برای ایجاد diff و ساخت درخواست برای دریافت شیء الگو استفاده می‌کند. برای نمونه‌ای که منطق کلاینت Remote Config و همچنین Firebase Cloud Messaging را در بر می‌گیرد، به Propagate Remote Config updates in real time مراجعه کنید.