توسيع نطاق "الإعداد عن بُعد" باستخدام وظائف السحابة الإلكترونية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك تشغيل دالة استجابةً لأحداث Remote Config، بما في ذلك نشر إصدار جديد من الإعدادات أو الرجوع إلى إصدار أقدم.
يوضّح هذا الدليل كيفية إنشاء دالة Remote Config تعمل في الخلفية
وتنفّذ عملية مقارنة بين إصدارَين من النموذج.
تشغيل دالة Remote Config
لتحديد معالج لأحداث Remote Config، استخدِم الدالة onUpdate() في الوحدة functions.remoteConfig.
يحتوي الكائن TemplateVersion الذي تعرضه الدالة onUpdate على حقول البيانات الوصفية الرئيسية لتعديل النموذج، مثل رقم الإصدار ووقت التعديل.
يمكنك أيضًا استرداد عنوان البريد الإلكتروني للمستخدم الذي أجرى التعديل، مع الاسم
والصورة إذا كانت متاحة.
في ما يلي مثال على دالة Remote Config تعرض الفرق بين كل إصدار معدَّل والإصدار الذي تم استبداله. تفحص الدالة حقل versionNumber الخاص بكائن النموذج، وتسترد الإصدار الحالي (المعدَّل حديثًا) بالإضافة إلى الإصدار الذي يسبقه برقم واحد:
تاريخ التعديل الأخير: 2025-08-16 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-16 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\n2nd gen 1st gen \n\n\u003cbr /\u003e\n\nYou can trigger a function in response to\nRemote Config events, including\nthe publication of a new config version or the rollback to an older version.\nThis guide describes how to create a Remote Config background function\nthat performs a diff of two template versions.\n\nTrigger a Remote Config function\n\nTo define a handler for Remote Config events, use the\n[`functions.remoteConfig`](/docs/reference/functions/firebase-functions.remoteconfig)\nmodule's `onUpdate()` function.\nThe `TemplateVersion` object returned by\n`onUpdate` contains the key metadata\nfields for a template update such as the version number and time of the update.\nYou can also retrieve the email for the user who made the update, with name\nand an image if available.\n\nHere's an example of a Remote Config function that\nreturns a diff of each updated version and the version it replaced. The function\nexamines the `versionNumber` field of the template object and retrieves the\ncurrent (newly updated) version together with the version one number lower: \n\n```gdscript\nexports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata =\u003e {\n return admin.credential.applicationDefault().getAccessToken()\n .then(accessTokenObj =\u003e {\n return accessTokenObj.access_token;\n })\n .then(accessToken =\u003e {\n const currentVersion = versionMetadata.versionNumber;\n const templatePromises = [];\n templatePromises.push(getTemplate(currentVersion, accessToken));\n templatePromises.push(getTemplate(currentVersion - 1, accessToken));\n\n return Promise.all(templatePromises);\n })\n .then(results =\u003e {\n const currentTemplate = results[0];\n const previousTemplate = results[1];\n\n const diff = jsonDiff.diffString(previousTemplate, currentTemplate);\n\n functions.logger.log(diff);\n\n return null;\n }).catch(error =\u003e {\n functions.logger.error(error);\n return null;\n });\n});https://github.com/firebase/functions-samples/blob/c4fde45b65fab584715e786ce3264a6932d996ec/Node-1st-gen/remote-config-diff/functions/index.js#L25-L51\n```\n\nThis sample uses the [`json-diff`](https://www.npmjs.com/package/json-diff) and\n[`request-promise`](https://www.npmjs.com/package/request-promise) modules to\ncreate the diff and build the request to get the template object. For a sample\nthat incorporates Remote Config client logic as well as Firebase Cloud Messaging,\nsee [Propagate Remote Config updates in real time](/docs/remote-config/propagate-updates-realtime)."]]