بيان الإضافات هو قائمة بمثيلات الإضافات وسماتها الإعدادات. باستخدام البيان، يمكنك إجراء ما يلي:
- مشاركة إعداد الإضافات مع الآخرين
- انسخ إعدادات الإضافات بين مشاريع مختلفة (مثل من من مشروعك إلى مشروع الإنتاج)
- نشر جميع الإضافات دفعة واحدة
- يمكنك اختبار آلية عمل الإضافات مع تطبيقك باستخدام 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}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
إنشاء بيان للإضافات
هناك ثلاث طرق لإنشاء بيان إضافات:
- إدارة بيان الإضافات باستخدام واجهة سطر الأوامر في Firebase
- تصدير إعدادات إضافات مشروع
- تعديل ملفات البيان يدويًا
يتم شرح أول طريقتين أدناه.
إدارة بيان الإضافات باستخدام واجهة سطر الأوامر في 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
تصدير إعدادات إضافات مشروع
لحفظ الإعدادات الحالية للإضافات لمشروع في البيان، يُرجى اتّباع الخطوات التالية: التالي:
- عليك إعداد واجهة سطر الأوامر في 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 واضبطه.
بدء تشغيل Local Emulator Suite:
- لتشغيل Emulator Suite بشكل تفاعلي، شغِّل:
firebase emulators:start
- لتشغيل Emulator Suite وتنفيذ نص برمجي تجريبي، شغّل:
firebase emulators:exec my-test.sh
- لتشغيل Emulator Suite بشكل تفاعلي، شغِّل:
الآن، إذا كانت لديك مثيلات الإضافات مدرجة في البيان،
ستُنزِّل 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
، ثم تنشر جميع مثيلات الإضافات.
عمليات ضبط الإضافات الخاصة بالمشروع
يمكن استخدام إعدادات الإضافات المحفوظة لنشرها في عدة نطاقات
المشروعات: على سبيل المثال، مشروع مرحلي ومشروع إنتاج. عند إجراء ذلك
لذلك، قد تحتاج بعض قيم المعلمات إلى أن تكون مختلفة لكل مشروع.
تجعل ملفات .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