نشر الأهداف هي معرّفات قصيرة (يمكنك تحديدها بنفسك) لموارد Firebase ضمن مشروعك على Firebase، مثل موقع استضافة يتضمّن مواد عرض ثابتة فريدة أو مجموعة من مثيلات "قاعدة البيانات في الوقت الفعلي" التي تتشارك قواعد الأمان نفسها.
يكون نشر الاستهدافات مفيدًا عندما يكون لديك عدّة مواقع استضافة أو عدة حِزم Cloud Storage أو عدة مثيلات لقاعدة بيانات في الوقت الفعلي. باستخدام أهداف النشر، يمكن لواجهة سطر الأوامر في Firebase نشر الإعدادات لمورد محدد من Firebase أو مجموعة من الموارد في مشروعك، مثل:
- إعدادات الاستضافة لكل موقع من المواقع الإلكترونية المضيفة
- أصول ثابتة من دليل مشروعك لكل موقع من مواقع الاستضافة
- قواعد الأمان التي تشاركها عدة مثيلات قاعدة بيانات في الوقت الفعلي أو حزم بيانات متعددة في Cloud Storage
لإعداد هدف نشر:
- طبِّق
TARGET_NAME
على مورد Firebase أو مجموعة موارد Firebase المستهدفة. - في ملف
firebase.json
، يمكنك الرجوع إلىTARGET_NAME
المرتبط عند ضبط الإعدادات لكل مورد أو مجموعة من الموارد.
عند تشغيل أوامر واجهة سطر الأوامر في Firebase (مثل
firebase deploy
)، يقرن واجهة سطر الأوامر في Firebase كل TARGET_NAME
بموارد Firebase المرتبطة به. يقوم واجهة سطر الأوامر بعد ذلك بمراسلة
مشروع Firebase بالإعدادات لكل مورد.
إعداد أهداف النشر لموارد Firebase
باستخدام واجهة سطر الأوامر في Firebase، يمكنك تطبيق TARGET_NAME
(معرّف الاسم المختصر الذي
تعرّفه بنفسك) على أحد موارد Firebase أو مجموعة من موارد Firebase.
وتتيح منصة Firebase نشر الأهداف لما يلي:
- مواقع استضافة Firebase
- التخزين في السحابة الإلكترونية لحِزم التخزين في Firebase
- مثيلات قاعدة بيانات Firebase في الوقت الفعلي
يتم تخزين إعدادات النشرات المستهدفة في ملف .firebaserc
في دليل المشروع، لذا لا تحتاج سوى إلى إعداد أهداف النشر مرة واحدة لكل مشروع.
إعداد أهداف النشر للاستضافة
لإنشاء هدف نشر وتطبيق TARGET_NAME
على موقع استضافة، شغِّل أمر واجهة سطر الأوامر التالي:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
أماكن ظهور المَعلمات:
TYPE - نوع مورد Firebase المناسب
- بالنسبة إلى مواقع "استضافة Firebase"، استخدِم
hosting
.
- بالنسبة إلى مواقع "استضافة Firebase"، استخدِم
TARGET_NAME: وهو اسم فريد لموقع الاستضافة الإلكتروني الذي تنشر المحتوى إليه
RESOURCE_IDENTIFIER:
SITE_ID
لموقع الاستضافة كما هو مُدرَج في مشروع Firebase
على سبيل المثال، إذا أنشأت موقعَين إلكترونيَّين (myapp-blog
وmyapp-app
) في مشروع Firebase، يمكنك تطبيق TARGET_NAME
فريد (blog
وapp
، على التوالي) على كل موقع إلكتروني من خلال تنفيذ الأوامر التالية:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
إعداد أهداف النشر في Cloud Storage أو Realtime Database
لإنشاء هدف نشر وتطبيق TARGET_NAME
على مجموعة من موارد Cloud Storage أو Realtime Database، شغِّل أمر CLI التالي:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
أماكن ظهور المَعلمات:
TYPE - نوع مورد Firebase المناسب
- بالنسبة إلى حِزم Cloud Storage، استخدِم
storage
. - وبالنسبة إلى مثيلات قاعدة البيانات في الوقت الفعلي، استخدِم
database
.
- بالنسبة إلى حِزم Cloud Storage، استخدِم
TARGET_NAME - اسم فريد للمورد أو مجموعة الموارد التي تشترك في قواعد الأمان
RESOURCE_IDENTIFIER: معرّفات الموارد كما هو مُدرَجة في مشروعك على Firebase (مثل أسماء حِزم التخزين أو أرقام تعريف مثيل قاعدة البيانات) التي تتشارك جميعها قواعد الأمان نفسها
على سبيل المثال، يمكنك تطبيق TARGET_NAME
من main
على مجموعة مكوّنة من ثلاث حِزم Cloud Storage إقليمية تتشارك كلّها قواعد الأمان نفسها من خلال تنفيذ الأمر التالي:
firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja
يُرجى العِلم أنّ myproject.appspot.com
هو معرّف الحزمة التلقائية،
في حين أنّ myproject-eu
وmyproject-ja
هما حزمتان إضافيتان تم إنشاؤهما في
مشروع Firebase.
ضبط ملف firebase.json لاستخدام الأهداف
بعد إعداد أهداف النشر لموارد Firebase، يُرجى الرجوع إلى كل
TARGET_NAME
مطبَّق في ملف
إعداد firebase.json
:
- أنشئ مصفوفة من عناصر الإعداد لكل مورد في Firebase باسم
TYPE
(hosting
أوstorage
أوdatabase
). - في المصفوفات، حدِّد
target
(باستخدامTARGET_NAME
) واضبط إعداداتك لمورد Firebase المرتبط أو مجموعة موارد Firebase.
بالاستناد إلى الأمثلة المذكورة أعلاه، يتضمّن مشروعك على Firebase موقعَين للاستضافة وثلاث حِزم Cloud Storage (تتشارك قواعد الأمان نفسها)، سيظهر ملف firebase.json
بالشكل التالي:
{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] } { "storage": [ { "target": "main", // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets "rules": "storage.main.rules" // the file that contains the shared security rules } ] }
إذا كانت لديك إعدادات متعددة لمواردك، يمكنك إنشاء أهداف نشر متعددة وتحديد كل إعداد في ملف firebase.json
. سيتم نشر جميع الموارد
ذات الصلة معًا عند تشغيل firebase deploy
.
إدارة أهداف النشر
يتم تخزين إعدادات نشر الأهداف في ملف .firebaserc
في دليل المشروع. يمكنك إدارة أهداف النشر لمشروعك عن طريق تشغيل أي من
الأوامر التالية من جذر دليل المشروع.
الطلب | الوصف |
---|---|
firebase target
|
يسرد أهداف النشر لدليل مشروعك الحالي |
firebase target:remove \
|
إزالة مورد من الهدف الذي تم تعيينه إليه |
firebase target:clear \
|
إزالة جميع الموارد أو موقع الاستضافة من الهدف المحدّد |
يعمل الأمران target:remove
وtarget:clear
على تعديل إعدادات استهداف
النشر تلقائيًا في ملف .firebaserc
في دليل مشروعك.
الاختبار محليًا قبل النشر
شغِّل أيًا من الأوامر التالية من جذر دليل المشروع.
الطلب | الوصف |
---|---|
firebase emulators:start
|
يحاكي جميع الموارد التي تم ضبطها في دليل مشروعك. |
firebase emulators:start \ |
محاكاة محتوى الاستضافة وإعدادات الموقع الإلكتروني المحدَّد للاستضافة فقط |
firebase emulators:start \
|
يحاكي ملف القواعد فقط لهدف Cloud Storage المحدّد |
firebase emulators:start \
|
لمحاكاة ملف القواعد لهدف قاعدة بيانات الوقت الفعلي المحدد فقط |
تعرّف على المزيد من المعلومات حول ضبط واستخدام مجموعة أدوات المحاكاة المحلية من Firebase.
تفعيل موارد Firebase محدّدة
شغِّل أيًا من الأوامر التالية من جذر دليل المشروع.
الطلب | الوصف |
---|---|
firebase deploy
|
تنشئ إصدارًا يتضمّن جميع الموارد القابلة للنشر في دليل مشروعك. |
firebase deploy \
|
نشر محتوى الاستضافة وضبط إعدادات موقع الاستضافة الإلكتروني المحدّد فقط على القناة المباشرة الخاصة بالموقع الإلكتروني |
firebase hosting:channel:deploy CHANNEL_ID \ |
نشر محتوى الاستضافة وإعدادات الموقع الإلكتروني المحدَّد للاستضافة فقط على قناة معاينة خاصة بالموقع الإلكتروني |
firebase deploy \
|
نشر ملف القواعد فقط لهدف Cloud Storage المحدّد |
firebase deploy \
|
نشر ملف القواعد فقط لهدف قاعدة البيانات في الوقت الفعلي المحدد |