بيان الإضافات هو قائمة بمثيلات الإضافات وإعداداتها. باستخدام ملف البيان، يمكنك إجراء ما يلي:
- مشاركة إعدادات الإضافات مع الآخرين
- نسخ إعدادات الإضافات بين مشاريع مختلفة (مثل النسخ من مشروعك التجريبي إلى مشروعك الفعلي)
- نشر جميع الإضافات في آنٍ واحد
- اختبار طريقة عمل الإضافات مع تطبيقك باستخدام Firebase Local Emulator Suite
- إرسال إعدادات الإضافات إلى نظام التحكّم بالمصادر
- تضمين الإضافات في مسار CI/CD
يتضمّن بيان الإضافة جزأين:
يمثّل
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}.firebasestorage.app IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
إنشاء ملف بيان للإضافات
هناك ثلاث طرق لإنشاء ملف بيان الإضافة:
- إدارة بيان الإضافة باستخدام واجهة سطر الأوامر (CLI) من Firebase
- تصدير إعدادات إضافات المشروع
- تعديل ملفات البيان يدويًا
نوضّح أدناه الطريقتَين الأوليَين.
إدارة بيان الإضافة باستخدام واجهة سطر الأوامر (CLI) من Firebase
يمكنك تنفيذ معظم أوامر ext:
في واجهة سطر الأوامر الخاصة بـ Firebase باستخدام الخيار --local
لتعديل بيان الإضافات بدون تغيير الإعدادات الحالية للمشروع.
على سبيل المثال:
firebase ext:install --local firebase/firestore-bigquery-export
سيؤدي تنفيذ الأمر أعلاه إلى مطالبتك بضبط أحدث إصدار من الإضافة firebase/firestore-bigquery-export
وحفظ عملية الضبط في ملف البيان، ولكن لن يتم نشر عملية الضبط في مشروعك.
في ما يلي بعض الأمثلة الإضافية على الطلبات التي تعدّل ملف بيان الإضافة:
# 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
تصدير إعدادات إضافات مشروع
لحفظ إعدادات الإضافات الحالية للمشروع في ملف البيان، اتّبِع الخطوات التالية:
- إعداد واجهة سطر الأوامر (CLI) في Firebase، إذا لم يسبق لك إجراء ذلك
- من موجه الأوامر، انتقِل إلى دليل المشروع. (يحتوي دليل مشروعك على الملف
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
- لتشغيل Emulator Suite وتنفيذ نص برمجي للاختبار، شغِّل ما يلي:
firebase emulators:exec my-test.sh
- لتشغيل "مجموعة أدوات المحاكاة" بشكل تفاعلي، شغِّل الأمر التالي:
الآن، إذا كانت لديك مثيلات إضافات مُدرَجة في ملف البيان، سيتم تنزيل الرمز المصدر لهذه الإضافات إلى ~/.cache/firebase/extensions
.Local Emulator Suite بعد تنزيلها، سيبدأ
Local Emulator Suite وستتمكّن من تشغيل أي من الوظائف التي يتم تشغيلها في الخلفية في الإضافات وربط تطبيقك بمجموعة أدوات المحاكي لاختبار مدى توافقها مع تطبيقك.
نشر إعدادات الإضافات في مشروع
بعد إضافة بعض مثيلات الإضافة إلى بيان الإضافة، يمكنك نشرها إلى مشروع باستخدام واجهة سطر الأوامر (CLI) الخاصة بمنصة Firebase. عند النشر باستخدام بيان إضافات، يمكنك تثبيت جميع مثيلات الإضافات وتعديلها وضبطها في البيان في مشروع واحد.
لنشر بيان إضافات، اتّبِع الخطوات التالية:
- من موجّه الأوامر، انتقِل إلى الدليل الذي يحتوي على إعدادات الإضافات المحفوظة. (هذا هو الدليل الذي يحتوي على
firebase.json
. إذا كنت قد نفّذت الأمرext:export
، يعني ذلك أنّك في الدليل الصحيح.) - نفِّذ الأمر
deploy
. إذا كنت تريد نشر الإضافات في مشروع آخر غير المشروع الحالي، حدِّد أيضًا--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
سيتحقّق الأمر deploy
من صحة كل إعداد من إعدادات المثيل، وسيسألك عمّا إذا كنت تريد حذف أي مثيلات إضافية من مشروعك الوجهة غير المُدرَجة في firebase.json
، ثم سينشر جميع مثيلات الإضافة.
إعدادات الإضافة الخاصة بالمشروع
يمكن استخدام إعدادات الإضافات المحفوظة لنشرها في مشاريع مختلفة متعددة، مثل مشروع مرحلة تجريبية ومشروع إصدار علني. عند إجراء ذلك، قد تحتاج بعض قيم المَعلمات إلى أن تكون مختلفة لكل مشروع.
تتيح ملفات .env
الخاصة بالمشروع إجراء ما يلي:
- وضع قيم المَعلمات التي تختلف بين المشاريع في
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
- ضَع قيم المَعلمات المشترَكة في
extensions/EXTENSION_INSTANCE_ID.env
.
في بعض الأحيان، قد تحتاج إلى استخدام قيمة مَعلمة مختلفة عند محاكاة الإضافات، مثلاً، قد تحتاج إلى تقديم مفتاح API تجريبي بدلاً من مفتاح إنتاج. ضَع المَعلمات التالية في ملف .local
:
- ضَع المَعلمات غير السرية التي تريد استخدامها أثناء المحاكاة في
extensions/EXTENSION_INSTANCE_ID.env.local
- وضع قيم المَعلمات السرية في
extensions/EXTENSION_INSTANCE_ID.secret.local