إدارة إعدادات المشروع باستخدام بيان "الإضافات"

بيان الإضافات هو قائمة بمثيلات الإضافات وسماتها الإعدادات. باستخدام البيان، يمكنك إجراء ما يلي:

  • مشاركة إعداد الإضافات مع الآخرين
  • انسخ إعدادات الإضافات بين مشاريع مختلفة (مثل من من مشروعك إلى مشروع الإنتاج)
  • نشر جميع الإضافات دفعة واحدة
  • يمكنك اختبار آلية عمل الإضافات مع تطبيقك باستخدام 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

تصدير إعدادات إضافات مشروع

لحفظ الإعدادات الحالية للإضافات لمشروع في البيان، يُرجى اتّباع الخطوات التالية: التالي:

  1. عليك إعداد واجهة سطر الأوامر في Firebase، إذا لم يسبق لك إعدادها.
  2. من موجّه الأوامر، انتقِل إلى دليل المشروع. (مشروعك الدليل على الملف firebase.json).
  3. شغِّل الأمر ext:export:
    firebase ext:export

سيضيف الأمر ext:export القسم extensions إلى firebase.json. الملف. بالإضافة إلى ذلك، ينشئ الأمر ext:export دليل extensions. يحتوي على الملف .env لكل نسخة إضافة ثبَّتها. هذه الملفات على معلمات التهيئة لكل مثيل.

اختبار ضبط الإضافات باستخدام Firebase Local Emulator Suite

بعد إدراج بعض مثيلات الإضافات في بيان الإضافات، يمكنك: لنختبرها باستخدام Local Emulator Suite.

  1. ثبِّت Local Emulator Suite واضبطه.

  2. بدء تشغيل Local Emulator Suite:

    • لتشغيل Emulator Suite بشكل تفاعلي، شغِّل: firebase emulators:start
    • لتشغيل Emulator Suite وتنفيذ نص برمجي تجريبي، شغّل: firebase emulators:exec my-test.sh

الآن، إذا كانت لديك مثيلات الإضافات مدرجة في البيان، ستُنزِّل Local Emulator Suite رمز المصدر لهذه الإضافات من أجل ~/.cache/firebase/extensions بمجرد الانتهاء من تنزيلها، سيبدأ Local Emulator Suite وسيكون بإمكانك تشغيل أي من الإضافات الوظائف التي يتم تشغيلها في الخلفية وربط تطبيقك بالمحاكي اختبار التكامل مع تطبيقك.

نشر إعداد إضافات في مشروع

بعد إدراج بعض مثيلات الإضافات في بيان الإضافة، يمكنك: لنشره في مشروع باستخدام واجهة سطر الأوامر في Firebase عند النشر من خلال بيان الإضافات، يمكنك تثبيت كل الإضافات وتحديثها وإعدادها الحالات في البيان في مشروع في وقت واحد.

لنشر بيان الإضافات:

  1. من موجه الأوامر، انتقِل إلى الدليل الذي يحتوي على القيم المحفوظة تهيئة الإضافات. (هذا هو الدليل الذي يحتوي على firebase.json إذا ركضت للتو ext:export، هذا يعني أنّك على اليمين. الدليل).
  2. شغِّل الأمر 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