مشغِّلات "الإعداد عن بُعد"


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

تشغيل وظيفة "الإعداد عن بُعد"

لتحديد معالِج لأحداث "الإعداد عن بُعد"، استخدِم functions.remoteConfig للدالة onUpdate() في الوحدة. كائن 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 وحدة من أجل ننشئ الفرق وإنشاء الطلب للحصول على كائن القالب. أخذ عيّنة التي تتضمن منطق العميل "الإعداد عن بُعد" بالإضافة إلى "المراسلة عبر السحابة الإلكترونية من Firebase" يُرجى الاطّلاع على نشر تحديثات "الإعداد عن بُعد" في الوقت الفعلي.