توسيع نطاق "الإعداد عن بُعد" باستخدام وظائف السحابة الإلكترونية


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

تشغيل دالة 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 ل إنشاء الفرق وإنشاء الطلب للحصول على عنصر النموذج. للحصول على نموذج يتضمن منطق العميل Remote Config بالإضافة إلى Firebase Cloud Messaging، اطّلِع على نشر تعديلات "الإعداد عن بُعد" في الوقت الفعلي.