نظرة عامة على ناشر الإضافة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تنفّذ إحدى إضافات Firebase مهمة أو مجموعة مهام معيّنة استجابةً لطلبات HTTP أو أحداث مشغِّلة من منتجات Firebase وGoogle الأخرى، مثل "المراسلة عبر السحابة الإلكترونية من Firebase" أو Cloud Firestore أو Pub/Sub.
يمكنك إنشاء إضافة خاصة بك للاستخدام الشخصي أو لمشاركتها مع العالم في "مركز إضافات Firebase". على سبيل المثال، يمكن أن تنفّذ الإضافة مهمة معيّنة يحتاجها تطبيقك بانتظام، أو يمكن أن تسهّل الوصول إلى إحدى واجهات برمجة التطبيقات الخاصة بشركتك. بعد إنشاء الإضافة، يمكنك مشاركتها مع الآخرين. ويمكن لهؤلاء المستخدمين تثبيت الإضافة وإعدادها لاستخدامها في مشاريعهم على Firebase.
بنية الإضافة
يمكن اعتبار الإضافة تتضمّن ثلاثة مكوّنات رئيسية:
- رمز Cloud Functions، بلغة JavaScript أو TypeScript
- بيانات التعريف التي تصف الإضافة
- مستندات لمساعدة المستخدمين في إعداد الإضافة واستخدامها
لتطوير إضافة، عليك تجميع هذه المكوّنات في البنية التالية:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- يحتوي الدليل
functions
على رمز Cloud Functions بلغة JavaScript أو TypeScript. هذا هو الرمز الذي ينفّذ مهام الإضافة استجابةً للأحداث التي يتم تشغيلها بواسطة خدمات Firebase وGoogle.
- يحتوي ملف
extension.yaml
على بيانات وصفية حول الإضافة، مثل المشغّلات وأدوار الوصول إلى إدارة الهوية وإمكانية الوصول (IAM)، بالإضافة إلى أي مَعلمات تريد أن تكون قابلة للضبط من قِبل المستخدم.
- ملفات
PREINSTALL
وPOSTINSTALL
وCHANGELOG
هي الحد الأدنى من المستندات التي يجب أن يتضمّنها تطبيقك الإضافي. تساعد هذه الملفات المستخدمين في التعرّف على وظيفة الإضافة وكيفية استخدامها والتحديثات التي أجريتها عليها. يجب أيضًا توفير رمز لمساعدة المستخدمين في التعرّف على الإضافة. تعرض
وحدة تحكّم Firebase وFirebase CLI و"مركز الإضافات" محتوى هذه الملفات عندما يستكشف المستخدمون إضافتك ويثبّتونها ويديرونها.
بعد إنشاء الإضافة، يمكنك استخدام واجهة سطر الأوامر (CLI) في Firebase لتثبيتها في مشروع أو نشرها في "مركز الإضافات"، حيث يمكن لأي مستخدم العثور عليها وتثبيتها في مشاريعه.
ما هي المنتجات التي يمكن أن يتفاعل معها الإضافة؟
بما أنّ إضافات Firebase تنفّذ مهامها باستخدام Cloud Functions، يمكنك التفكير في مسألة عمليات الدمج المحتملة بطريقتَين: ما هي المنتجات التي يمكنها تشغيل وظائف الإضافة؟ وبعد التشغيل، ما هي المنتجات التي يمكن أن تتفاعل معها وظائف الإضافة؟
مشغّلات الدوال المتوافقة
المشغّلات اليدوية
أولاً، يمكنك تشغيل دالة يدويًا. تتيح "إضافات Firebase" و"وظائف Cloud" طريقتَين لتشغيل الوظائف يدويًا:
- مشغّلات HTTP: نشر دالة إلى نقطة نهاية HTTP
- الدوال القابلة للاستدعاء: يمكنك استدعاء دوال Cloud Functions مباشرةً من رمز عميل iOS أو Android أو الويب، وذلك باستخدام حِزم تطوير البرامج (SDK) الخاصة بعميل Firebase.
من خلال عرض نقاط نهاية HTTP من إضافتك، يمكن أن تتكامل إضافتك مع أي خدمة ويب تتيح استخدام خطافات الويب. باستخدام الدوال القابلة للاستدعاء، يمكن للمستخدمين الذين يثبّتون إضافتك استخدام حِزم تطوير البرامج (SDK) من Firebase كمكتبة برامج للوصول إلى واجهة برمجة التطبيقات التي تنفّذها إضافتك.
مشغّلات خدمات Firebase
تُصدر معظم منتجات Firebase أحداثًا يمكن أن تؤدي إلى تشغيل دوال Cloud Functions الخاصة بإحدى الإضافات.
- إحصاءات Google: تشغيل الدوال عند تسجيل حدث في "إحصاءات Google"
- App Distribution: تفعيل الدوال عندما يفعّل App Distribution تنبيهًا
- المصادقة: تشغيل الدوال عند إنشاء المستخدمين حسابات وحذفها
- Cloud Firestore: تشغيل الدوال عند إنشاء الصفحات أو تعديلها أو حذفها
- Cloud Storage: تشغيل الدوال عند تحميل العناصر أو أرشفتها أو حذفها من الحِزم
- Crashlytics: تشغيل الدوال عندما يفعّل Crashlytics تنبيهًا
- ميزة "مراقبة الأداء": تشغيل الدوال عندما تنشئ ميزة "مراقبة الأداء" تنبيهًا
- Realtime Database: تشغيل الدوال عند إنشاء البيانات أو تعديلها أو حذفها
- الإعداد عن بُعد: تشغيل الدوال عند تعديل مَعلمة
- Test Lab: تشغيل الدوال عندما يطلق Test Lab تنبيهًا
مشغّلات خدمات Google Cloud
يمكن أن يتضمّن الإضافة أيضًا دوال يتم تشغيلها من خلال عدة خدمات غير تابعة لـ Firebase من Google Cloud:
- Cloud Pub/Sub: يمكن أن يتضمّن أحد الإضافات وظائف يتم تشغيلها عند نشر الأحداث في موضوع Pub/Sub قابل للإعداد.
- Cloud Scheduler: يمكن أن يتضمّن أحد الإضافات دوالاً يتم تشغيلها وفقًا لجدول زمني محدّد
- Cloud Tasks: يمكن أن يتضمّن أحد الإضافات دوال يمكن وضعها في قائمة انتظار باستخدام Cloud Tasks. تستفيد "إضافات Firebase" من هذه الإمكانية للسماح لك، بصفتك مطوّر إضافة، بكتابة دوال تستجيب لأحداث "دورة حياة" الإضافة، مثل تثبيتها في مشروع للمرة الأولى، وترقيتها إلى إصدار جديد، وإعادة ضبط إعداداتها.
- Eventarc: يمكن أن يتضمّن أحد الإضافات وظائف يتم تشغيلها عند نشر الأحداث في قناة Eventarc قابلة للإعداد. في المقابل، يمكن أن تنشر إحدى الإضافات أحداثها الخاصة في قناة Eventarc من أجل السماح للمستخدمين بتحديد وظائفهم الخاصة التي يتم تشغيلها من أحداث الإضافة.
الدوال المتوافقة مع from
بعد تشغيل Cloud Function لإحدى الإضافات، يصبح نطاق عمليات الدمج الممكنة مفتوحًا بشكل عام. في ما يلي بعض الميزات التي يمكنك الاستفادة منها من خلال Cloud Function:
- قراءة أي خدمة من خدمات Firebase أو Google Cloud التي تستخدم دورًا متوافقًا في "إدارة الهوية وإمكانية الوصول" والكتابة فيها والتفاعل معها بأي طريقة أخرى
- العمل مع أي خدمة تابعة لجهة خارجية توفّر واجهة برمجة تطبيقات على الويب
- العمل مع الخدمات المخصّصة إذا كنت توفّر واجهة برمجة تطبيقات على الويب
- تشغيل معظم مكتبات JavaScript، بما في ذلك TensorFlow.js وExpress.js وغيرها
كيفية إنشاء إضافة
يوجّهك البرنامج التعليمي البدء خلال عملية إنشاء إضافة كاملة واختبارها ونشرها، وهو الطريقة المقترَحة للتعرّف على كيفية إنشاء إضافة.
البدء
بعد الاطّلاع على دليل البدء مرة واحدة، يمكنك الرجوع إلى أدلة المواضيع الفردية التي تشرح كل المهام المتعلّقة بإنشاء إضافة خاصة بك:
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\nA Firebase Extension performs a specific task or set of tasks in response to\nHTTP requests or triggering events from other Firebase and Google products, like\nFirebase Cloud Messaging, Cloud Firestore, or Pub/Sub.\n\nYou can build your own extension for personal use or to share with the world in\nthe Firebase Extensions Hub. For example, your extension can perform a specific\ntask that your app regularly needs, or it can make it easier to access one of\nyour company's APIs. After you build your extension, you can share it with\nothers. Those users can install and configure the extension for use in their own\nFirebase projects.\n\nStructure of an extension\n\nYou can think of an extension as having three main components:\n\n- Cloud Functions code, in JavaScript or TypeScript\n- Metadata that describes your extension\n- Documentation to help your users configure and use your extension\n\nTo develop an extension, you assemble these components into the following\nstructure: \n\n example-extension\n ├── functions\n │ ├── integration-tests\n │ │ ├── extensions\n │ │ │ └── example-extension.env\n │ │ ├── firebase.json\n │ │ └── integration-test.spec.js\n │ ├── index.js\n │ └── package.json\n ├── README.md\n ├── PREINSTALL.md\n ├── POSTINSTALL.md\n ├── CHANGELOG.md\n ├── icon.png\n └── extension.yaml\n\n- The `functions` directory contains your Cloud Functions code in JavaScript or TypeScript. This is the code that performs the extension's tasks in response to events triggered by Firebase and Google services.\n- The `extension.yaml` file contains metadata about your extension, such as its triggers and IAM access roles, as well as any parameters you want to be user-configurable.\n- The `PREINSTALL`, `POSTINSTALL`, and `CHANGELOG` files are the minimum documentation your extension must have. These files help your users learn what your extension does, how to use it, and what updates you've made. You should also provide an icon to help users recognize your extension. The Firebase console, Firebase CLI, and Extensions Hub display the contents of these files when users explore, install, and manage your extension.\n\nAfter you have created your extension, you can use the Firebase CLI to install\nit into a project or publish it to the Extensions Hub, where anyone can discover\nand install it into their projects.\n\nWhat products can my extension interact with?\n\nBecause a Firebase extension does its work using Cloud Functions, you can think\nof the question of possible integrations in two ways: *What products can trigger\nmy extension's functions?* and *Once triggered, what products can my extension's\nfunctions interact with?*\n\nSupported function triggers\n\nManual triggers\n\nFirst of all, you can manually trigger a function. Firebase Extensions and Cloud\nFunctions support two ways of manually triggering functions:\n\n- HTTP triggers: deploy a function to an HTTP endpoint\n- Callable functions: call your Cloud Functions directly from your iOS, Android, or web client code, using the Firebase client SDKs.\n\nBy exposing HTTP endpoints from your extension, your extension can potentially\nintegrate with any web service that supports webhooks. With callable functions,\nusers who install your extension can use the Firebase SDKs as a client library\nfor accessing the API your extension implements.\n\nFirebase service triggers\n\nMost Firebase products emit events that can trigger an extension's Cloud\nFunctions.\n\n- **Analytics:** trigger functions when Analytics logs an event\n- **App Distribution:** trigger functions when App Distribution triggers an alert\n- **Authentication:** trigger functions when users create and delete accounts\n- **Cloud Firestore:** trigger functions when pages are created, updated, or deleted\n- **Cloud Storage**: trigger functions when objects are uploaded, archived, or deleted from buckets\n- **Crashlytics:** trigger functions when Crashlytics triggers an alert\n- **Performance Monitoring:** trigger functions when Performance Monitoring triggers an alert\n- **Realtime Database:** trigger functions when data is created, updated, or deleted\n- **Remote Config:** trigger functions when a parameter is updated\n- **Test Lab:** trigger functions when Test Lab triggers an alert\n\nGoogle Cloud service triggers\n\nAn extension can also include functions that trigger off several non-Firebase\nGoogle Cloud services:\n\n- **Cloud Pub/Sub**: an extension can include functions that trigger when events are posted to a configurable Pub/Sub topic.\n- **Cloud Scheduler**: an extension can include functions that run on a set schedule\n- **Cloud Tasks**: an extension can include functions that can be queued using Cloud Tasks. Firebase Extensions uses this capability to let you, as an extension author, write functions that respond to an extension's \"lifecycle\" events: being installed in a project for the first time, being upgraded to a new version, and being reconfigured.\n- **Eventarc** : an extension can include functions that trigger when events are published to a configurable Eventarc channel; conversely, an extension can publish its own events to an Eventarc channel in order to enable users to define their own functions that trigger from an *extension's* events.\n\nSupported from functions\n\nOnce an extension's Cloud Function has been triggered, the range of possible\nintegrations is generally open ended. Here are some highlights of what you can\ndo from a Cloud Function:\n\n- Read, write, and otherwise interact with any **Firebase** or **Google Cloud** service that uses a [supported IAM role](/docs/extensions/publishers/access#supported-roles).\n- Work with any **third-party service** that provides a web API.\n- Work with your **custom services** if you provide a web API.\n- Run most JavaScript libraries, including **TensorFlow.js** , **Express.js,** and so on.\n\nHow to build an extension\n\nThe [Get Started](/docs/extensions/publishers/get-started) tutorial walks you through\nthe process of building, testing, and publishing a complete extension, and is\nthe recommended way to learn how to build one.\n\n[Get Started](/docs/extensions/publishers/get-started)\n\nAfter you've gone through the getting started guide once, you can refer to the\nindividual topic guides, which explain each of the tasks involved in building\nyour own extension:\n\n- [Write functions for an extension](/docs/extensions/publishers/functions)\n- [Use parameters in an extension](/docs/extensions/publishers/parameters)\n- [Set up appropriate access for an extension](/docs/extensions/publishers/access)\n- [Respond to extension lifecycle events](/docs/extensions/publishers/lifecycle-events)\n- [Add user hooks to an extension](/docs/extensions/publishers/user-hooks)\n- [Create user documentation for your extension](/docs/extensions/publishers/user-documentation)\n- [Publish an extension on Extensions Hub](/docs/extensions/publishers/upload-and-publish)\n- [Complete extension.yaml reference](/docs/extensions/reference/extension-yaml)"]]