يمكنك تشغيل دالة استجابةً لأحداث Firebase 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، راجِع نقل تعديلات "الإعداد عن بُعد" في الوقت الفعلي.