مشغلات التكوين عن بعد

يمكنك تشغيل وظيفة استجابة لأحداث Firebase 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 -prom modules لإنشاء فرق وبناء طلب للحصول على كائن القالب. للحصول على عينة تتضمن منطق عميل Remote Config بالإضافة إلى Firebase Cloud Messaging ، راجع نشر تحديثات التكوين عن بُعد في الوقت الفعلي .