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