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


يمكنك تشغيل وظيفة استجابةً لأحداث Firebase Remote Config ، بما في ذلك نشر إصدار تكوين جديد أو العودة إلى إصدار أقدم. يصف هذا الدليل كيفية إنشاء وظيفة خلفية للتكوين عن بعد والتي تنفذ إصدارين مختلفين من القالب.

قم بتشغيل وظيفة التكوين عن بعد

لتحديد معالج لأحداث التكوين عن بعد، استخدم وظيفة onUpdate() الخاصة بوحدة functions.remoteConfig . يحتوي كائن TemplateVersion الذي تم إرجاعه بواسطة onUpdate على حقول بيانات التعريف الرئيسية لتحديث القالب مثل رقم الإصدار ووقت التحديث. يمكنك أيضًا استرداد البريد الإلكتروني للمستخدم الذي قام بالتحديث، مع الاسم والصورة إذا كان ذلك متاحًا.

فيما يلي مثال لوظيفة "التكوين عن بعد" التي تُرجع اختلافًا بين كل إصدار محدث والإصدار الذي تم استبداله. تقوم الوظيفة بفحص حقل 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، راجع نشر تحديثات Remote Config في الوقت الفعلي .