ملف بيان الإضافات هو قائمة بمثيلات الإضافات وملفّات ملفّات برمجة التطبيقات الخاصة بها. باستخدام البيان، يمكنك إجراء ما يلي:
- مشاركة إعدادات الإضافات مع الآخرين
- نسخ إعدادات الإضافات بين مشاريع مختلفة (مثلاً من مشروعك التجريبي إلى مشروعك العلني)
- نشر جميع الإضافات دفعة واحدة
- اختبار أداء إضافاتك مع تطبيقك باستخدام Firebase Local Emulator Suite
- ضبط إعدادات الإضافات في أداة التحكّم في المصدر
- تضمين الإضافات في مسار عملية التطوير/النشر المتكاملَين
يتألّف بيان الإضافات من جزأين:
القسم
extensions
منfirebase.json
، وهو خريطة لرقم تعريف المثيل لمرجع إصدار الإضافة. على سبيل المثال:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
ملفات
.env
التي تحتوي على إعدادات كل مثيل من مثيلات الإضافة ، في الدليل الفرعيextensions/
ضمن دليل مشروعك على Firebase على سبيل المثال، قد يتضمّن مثيلstorage-resize-images
ملف.env
على النحو التالي:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
إنشاء ملف بيان إضافات
هناك ثلاث طرق لإنشاء بيان إضافات:
- إدارة بيان الإضافات باستخدام واجهة برمجة التطبيقات Firebase CLI
- تصدير إعدادات إضافات المشروع
- تعديل ملفات البيان يدويًا
يتم شرح أول طريقتين أدناه.
إدارة بيان الإضافات باستخدام واجهة برمجة التطبيقات Firebase CLI
يمكنك تنفيذ معظم أوامر ext:
في Firebase CLI باستخدام الخيار --local
لتعديل بيان الإضافات بدون تغيير الإعدادات
الحالية للمشروع.
على سبيل المثال:
firebase ext:install --local firebase/firestore-bigquery-export
سيطلب منك تنفيذ الأمر أعلاه ضبط أحدث إصدار من إضافة
firebase/firestore-bigquery-export
وحفظ الإعدادات في
البيان، ولكن لن يتم نشر الإعدادات في مشروعك.
في ما يلي بعض الأمثلة الإضافية على الأوامر التي تعدّل بيان ملحق Chrome:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
تصدير إعدادات إضافات المشروع
لحفظ إعدادات الإضافات الحالية للمشروع في البيان، اتّبِع الخطوات التالية:
- إعداد واجهة برمجة التطبيقات Firebase CLI إذا لم يسبق لك إجراء ذلك
- من موجه shell، انتقِل إلى دليل المشروع. (يحتوي ملف directory
الخاص بمشروعك على الملف
firebase.json
). - نفِّذ الأمر
ext:export
:firebase ext:export
سيؤدي الأمر ext:export
إلى إضافة قسم extensions
إلى الملف firebase.json
. بالإضافة إلى ذلك، ينشئ الأمر ext:export
دليل extensions
يحتوي على ملف .env
لكل مثيل إضافة ثبَّته. تحتوي هذه
الملفات على معلمات التهيئة لكل مثيل.
اختبار إعدادات الإضافات باستخدام Firebase Local Emulator Suite
بعد إدراج بعض مثيلات الإضافات في بيان الإضافات، يمكنك اختبارها باستخدام Local Emulator Suite.
ثبِّت Local Emulator Suite واضبطه.
-
- لتشغيل "مجموعة أدوات المحاكاة" بشكل تفاعلي، شغِّل:
firebase emulators:start
- لتشغيل حزمة المحاكيات وتنفيذ نص برمجي اختباري، شغِّل:
firebase emulators:exec my-test.sh
- لتشغيل "مجموعة أدوات المحاكاة" بشكل تفاعلي، شغِّل:
الآن، إذا كانت لديك نُسخ من الإضافات مُدرَجة في البيان، سينزيل الرمز المصدر لهذه الإضافات من
Local Emulator Suite إلى
~/.cache/firebase/extensions
. بعد تنزيلها، سيبدأ
Local Emulator Suite وستتمكّن من بدء أي من وظائف
الإضافات التي يتم تشغيلها في الخلفية وربط تطبيقك بمجموعة
المحاكي لاختبار دمجها مع تطبيقك.
نشر إعداد إضافات في مشروع
بعد إدراج بعض مثيلات الإضافة في بيان الإضافة، يمكنك نشرها في مشروع باستخدام واجهة سطر الأوامر في Firebase. عند النشر باستخدام بيان الإضافات، يتم تثبيت جميع مثيلات الإضافة في البيان وتحديثها وضبطها في مشروع واحد في آنٍ واحد.
لنشر بيان إضافات:
- من موجّه الأوامر، انتقِل إلى الدليل الذي يحتوي على إعدادات الإضافات المحفوظة. (هذا هو الدليل الذي يحتوي على
firebase.json
. إذا شغّلت للتوext:export
، فأنت في الدليل الصحيح.) - نفِّذ الأمر
deploy
. وإذا كنت تريد نشر الإضافات في مشروع غير المشروع الحالي، حدِّد أيضًا--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
سيتحقّق الأمر deploy
من صحة إعدادات كلّ مثيل، وسيسألك عمّا إذا كنت تريد
حذف أيّ نُسخ من الإضافة من مشروع الوجهة غير المُدرَجة في firebase.json
، ثمّ سينشر كلّ نُسخ الإضافة.
إعدادات الإضافات الخاصة بالمشروع
يمكن استخدام إعدادات الإضافات المحفوظة للنشر في عدة projects مختلفة: على سبيل المثال، مشروع تنظيم ومشروع اختبار علني. عند إجراء
ذلك، قد تحتاج بعض قيم المَعلمات إلى أن تكون مختلفة لكل مشروع.
تتيح ملفات .env
الخاصة بالمشروع إجراء ذلك:
- ضع قيم المَعلمات التي تختلف بين المشاريع في
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
. - ضَع قيم المَعلمات المشترَكة في
extensions/EXTENSION_INSTANCE_ID.env
.
في بعض الأحيان، قد تحتاج إلى استخدام قيمة مَعلمة مختلفة عند محاكاة
الإضافات: على سبيل المثال، قد تحتاج إلى تقديم مفتاح اختبار لواجهة برمجة التطبيقات بدلاً من
مفتاح الإصدار العلني. ضَع المَعلمات التالية في ملف .local
:
- ضع المعلَمات غير السرية التي تريد استخدامها أثناء المحاكاة في
extensions/EXTENSION_INSTANCE_ID.env.local
- ضع قيم المَعلمات السرية في
extensions/EXTENSION_INSTANCE_ID.secret.local