نشر الأهداف هي معرّفات قصيرة (تحدّدها بنفسك) لموارد 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
- Cloud Storage لمجموعات التخزين في Firebase
- مثيلات قاعدة بيانات Firebase في الوقت الفعلي
يتم تخزين إعدادات أهداف النشر في ملف .firebaserc
في دليل المشروع، لذلك عليك فقط إعداد أهداف النشر مرة واحدة لكل مشروع.
إعداد أهداف النشر للاستضافة
لإنشاء هدف نشر وتطبيق TARGET_NAME
على موقع إلكتروني للاستضافة، شغِّل أمر CLI التالي:
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 أو "قاعدة البيانات في الوقت الفعلي"
لإنشاء هدف نشر وتطبيق TARGET_NAME
على مجموعة من موارد Cloud Storage أو قاعدة البيانات في الوقت الفعلي، شغِّل أمر 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 على موقعين
للاستضافة وثلاث حزم بيانات 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
في دليل المشروع. يمكنك إدارة أهداف النشر لمشروعك عن طريق تشغيل أي من الأوامر التالية من جذر دليل مشروعك.
Command | الوصف |
---|---|
firebase target
|
يسرد أهداف النشر لدليل مشروعك الحالي |
firebase target:remove \
|
إزالة مورد من الهدف الذي تم تخصيصه له |
firebase target:clear \
|
يؤدي هذا الخيار إلى إزالة جميع الموارد أو موقع الاستضافة الإلكتروني من الهدف المحدَّد. |
يعمل الأمران target:remove
وtarget:clear
تلقائيًا على تعديل إعدادات النشر
المستهدف في ملف .firebaserc
ضمن دليل المشروع.
الاختبار على الجهاز قبل النشر
نفِّذ أيًّا من الأوامر التالية من جذر دليل مشروعك.
Command | الوصف |
---|---|
firebase emulators:start
|
يحاكي جميع الموارد التي تم ضبطها في دليل المشروع. |
firebase emulators:start \ |
لمحاكاة محتوى "الاستضافة" فقط وإعداد موقع الاستضافة المحدّد |
firebase emulators:start \
|
يحاكي ملف القواعد فقط لهدف Cloud Storage المحدَّد. |
firebase emulators:start \
|
يحاكي ملف القواعد فقط لهدف قاعدة بيانات الوقت الفعلي المحدد |
اطّلِع على مزيد من المعلومات عن ضبط حزمة المحاكي المحلي من Firebase واستخدامها.
نشر موارد Firebase محددة
نفِّذ أيًّا من الأوامر التالية من جذر دليل مشروعك.
Command | الوصف |
---|---|
firebase deploy
|
تنشئ إصدارًا لجميع الموارد القابلة للنشر في دليل مشروعك. |
firebase deploy \
|
تفعيل محتوى "الاستضافة" وإعداد موقع الاستضافة المحدّد فقط على القناة المباشرة للموقع الإلكتروني |
firebase hosting:channel:deploy CHANNEL_ID \ |
يؤدي هذا الإعداد إلى نشر محتوى "الاستضافة" وإعداد موقع الاستضافة المحدَّد فقط في قناة معاينة للموقع الإلكتروني. |
firebase deploy \
|
نشر ملف القواعد فقط لهدف Cloud Storage المحدَّد |
firebase deploy \
|
تؤدي هذه السياسة إلى نشر ملف القواعد فقط لهدف قاعدة بيانات الوقت الفعلي المحدّد. |