تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
إذا أردت جدولة الدوال لتنفيذها في أوقات محدّدة، استخدِم المعالج onSchedule لإنشاء موضوع Pub/Sub يستخدم Cloud Scheduler لتشغيل الأحداث في هذا الموضوع.
قبل البدء
لاستخدام هذا الحلّ في مشروعك على Firebase، يجب أن يكون مشروعك ضمن خطة التسعير Blaze. إذا لم تكن الخطة Blaze نشطة، عليك ترقية خطة الأسعار.
على الرغم من أنّ الفوترة مطلوبة، يمكنك توقّع أن تكون التكلفة الإجمالية معقولة، لأنّ تكلفة كل Cloud Schedulerمهمة تبلغ 0.10 دولار أمريكي شهريًا، ويُسمح بثلاث مهام لكل حساب على Google بدون أي رسوم. استخدِم حاسبة الأسعار في Blaze لإنشاء تقدير للتكلفة استنادًا إلى الاستخدام المتوقّع.
يجب تفعيل واجهتَي برمجة التطبيقات Pub/Sub وCloud Scheduler لمشروعك. من المفترض أن تكون هذه الخدمات مفعّلة تلقائيًا لمعظم مشاريع Firebase، ويمكنك التأكّد من ذلك في وحدة تحكّم Google Cloud.
كتابة دالة مُجدوَلة
في Cloud Functions for Firebase، تتوفّر منطق الجدولة في رمز الدوال،
بدون أي متطلبات خاصة في وقت النشر. لإنشاء دالة مجدوَلة، استخدِم functions.pubsub.schedule('your schedule').onRun((context)).
على سبيل المثال، لتشغيل دالة كل خمس دقائق باستخدام بنية App Engine cron.yaml، يمكنك اتّباع الخطوات التالية:
exports.scheduledFunction=functions.pubsub.schedule('every 5 minutes').onRun((context)=>{console.log('This will be run every 5 minutes!');returnnull;});
يتوافق Cloud Scheduler مع كلّ من Unix Crontab وبنية App Engine. على سبيل المثال، لاستخدام Crontab لاختيار منطقة زمنية معيّنة يتم فيها تنفيذ دالة مجدوَلة، يمكنك اتّباع الخطوات التالية:
exports.scheduledFunctionCrontab=functions.pubsub.schedule('5 11 * * *').timeZone('America/New_York')//Userscanchoosetimezone-defaultisAmerica/Los_Angeles.onRun((context)=>{console.log('This will be run every day at 11:05 AM Eastern!');returnnull;});
يجب أن تكون قيمة timeZone اسم منطقة زمنية من
قاعدة بيانات tz. يمكنك الاطّلاع على
مرجع Cloud Scheduler
للحصول على مزيد من المعلومات حول السمات المتوافقة.
نشر دالة مجدوَلة
عند نشر دالة مجدولة، يتم تلقائيًا إنشاء مهمة المجدول وموضوع النشر/الاشتراك المرتبطَين. تعرض واجهة سطر الأوامر Firebase اسم الموضوع، ويمكنك الاطّلاع على المهمة والموضوع في Google Cloud Console.
يتم تسمية الموضوع وفقًا للاتفاقية التالية:
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\n2nd gen 1st gen \n\n\u003cbr /\u003e\n\nIf you want to schedule functions to run at specified times, use\nthe `onSchedule` handler to create a\n[Pub/Sub](https://cloud.google.com/pubsub/) topic that uses\n[Cloud Scheduler](https://cloud.google.com/scheduler/) to trigger events on\nthat topic.\n\nBefore you begin\n\nTo use this solution in your Firebase project, your project must be on the\nBlaze pricing plan. If it's not already on the Blaze plan,\n[upgrade your pricing plan](/pricing).\n\nThough billing is required, you can expect the overall cost to be manageable, as\neach Cloud Scheduler job costs $0.10 (USD) per month, and there is an\nallowance of three jobs per Google account, at no charge. Use the Blaze\n[pricing calculator](/pricing#blaze-calculator) to generate a cost estimate\nbased on your projected usage.\n\nThe Pub/Sub and Cloud Scheduler APIs must be enabled for your\nproject. These should already be enabled for most Firebase projects; you can\nverify in the [Google Cloud console](https://console.cloud.google.com/).\n| **Important:** Cloud Scheduler used to require that your project have a [Google App Engine app](https://cloud.google.com/appengine/docs/). During its setup you were prompted to select a location, and this location became your project's [*location for\n| default Google Cloud resources*](/docs/projects/locations#default-cloud-location) (Cloud Scheduler being one of these resources). This location is used for resources in your project that have an association with App Engine, including your *default* Cloud Firestore database instance and your *default* Cloud Storage bucket (specifically with the name format `*.appspot.com`).\n|\n| However, now that Cloud Scheduler and recently provisioned\n| default Cloud Storage buckets (with the name format\n| `*.firebasestorage.app`) no longer have a dependency\n| on App Engine, you only need to consider this location if you're using\n| 1st gen scheduled functions and `*.appspot.com`\n| buckets.\n\nWrite a scheduled function\n\nIn Cloud Functions for Firebase, scheduling logic resides in your functions code,\nwith no special deploy-time requirements. To create a scheduled function,\nuse `functions.pubsub.schedule('your schedule').onRun((context))`.\nFor example, to run a function every\nfive minutes with\n[App Engine cron.yaml](https://cloud.google.com/appengine/docs/standard/python/config/cronref)\nsyntax, do something like this: \n\n exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) =\u003e {\n console.log('This will be run every 5 minutes!');\n return null;\n });\n\nBoth Unix Crontab and App Engine syntax\nare supported by Cloud Scheduler. For example, to use Crontab to select a\nspecific timezone in which to run a scheduled function, do something like this: \n\n exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')\n .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles\n .onRun((context) =\u003e {\n console.log('This will be run every day at 11:05 AM Eastern!');\n return null;\n });\n\nThe value for `timeZone` must be a time zone name from the\n[tz database](http://en.wikipedia.org/wiki/Tz_database). See the\n[Cloud Scheduler reference](https://cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1#job)\nfor more information on supported properties.\n| **Important:** Depending on how you design your scheduling logic, a function may be triggered multiple times, with the next instance running while the previous instance is still executing.\n\nDeploy a scheduled function\n\nWhen you deploy a scheduled function, the related scheduler job and pub/sub\ntopic are created automatically. The Firebase CLI echoes the topic name,\nand you can view the job and topic in the\n[Google Cloud console](https://console.cloud.google.com/project/_/cloudscheduler).\nThe topic is named according to the following convention:\n\n**firebase-scheduled-\u003cvar translate=\"no\"\u003efunction_name\u003c/var\u003e-\u003cvar translate=\"no\"\u003eregion\u003c/var\u003e**\n\nFor example:\n\n**firebase-scheduled-scheduledFunctionCrontab-us-east1.**\n| **Important:** Make sure you do not manually delete or modify the topic or scheduler job in the console. Doing this could cause errors in the execution of your scheduled function."]]