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


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

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

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