مشغّلات الإعداد عن بُعد (الجيل الأول)

يمكنك تشغيل دالة استجابةً لأحداث 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، راجِع نشر تعديلات "الإعداد عن بُعد" في الوقت الفعلي.