استهدافات النشر هي معرّفات أسماء قصيرة (تحدّدها بنفسك) لموارد Firebase في مشروعك على Firebase، مثل موقع Hosting الإلكتروني الذي يحتوي على مواد عرض static فريدة أو مجموعة من مثيلات Realtime Database التي تشترك في قواعد أمان المشترَكة.
تكون استهدافات النشر مفيدة عندما يكون لديك مواقع Hosting إلكترونية متعددة أو حِزم Cloud Storage متعددة أو نُسخ Realtime Database متعددة. باستخدام استهدافات النشر، يمكن لأداة Firebase CLI نشر الإعدادات على مورد Firebase محدّد أو مجموعة من الموارد في مشروعك، مثل:
- إعدادات الاستضافة لكل موقع من مواقعك الإلكترونية Hosting
- مواد العرض الثابتة من دليل مشروعك لكلّ من Hosting مواقعك الإلكترونية
- قواعد الأمان التي تشترك فيها عدة نُسخ من Realtime Database أو عدة حِزم Cloud Storage
لإعداد هدف نشر:
- طبِّق
TARGET_NAME
على مورد Firebase المستهدف أو مجموعة من موارد Firebase. - في ملف
firebase.json
، استخدمTARGET_NAME
المرتبط عند ضبط الإعدادات لكلّ مورد أو مجموعة من الموارد.
عند تنفيذ أوامر Firebase CLI (مثل
firebase deploy
)، تُقرِن أداة Firebase CLI كل TARGET_NAME
بمواد Firebase
المرتبطة به. بعد ذلك، تتواصل وحدة تحكم سطر الأوامر مع
مشروعك على Firebase لضبط الإعدادات لكل مورد.
إعداد أهداف النشر لموارد Firebase
باستخدام واجهة برمجة التطبيقات Firebase، طبِّق TARGET_NAME
(معرّف الاسم المختصر الذي تعيّنه بنفسك) على مورد Firebase أو مجموعة من موارد Firebase.
تتيح Firebase استهدافات النشر لما يلي:
- Firebase Hosting موقعًا
- حِزم تخزين بسعة Cloud Storage for Firebase
- Firebase Realtime Database المثيلات
يتم تخزين إعدادات استهدافات النشر في ملف .firebaserc
في دليل
المشروع، لذا ما عليك سوى إعداد استهدافات النشر مرة واحدة فقط لكل
مشروع.
إعداد استهدافات النشر لـ Hosting
لإنشاء هدف نشر وتطبيق TARGET_NAME
على موقع Hosting الإلكتروني، شغِّل
الأمر التالي في سطر الأوامر:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
مكان المَعلمات:
TYPE: نوع مورد Firebase ذي الصلة
- بالنسبة إلى Firebase Hosting موقعًا إلكترونيًا، استخدِم
hosting
.
- بالنسبة إلى Firebase Hosting موقعًا إلكترونيًا، استخدِم
TARGET_NAME: اسم فريد لموقع Hosting الإلكتروني الذي يتم نشر التطبيق عليه
RESOURCE_IDENTIFIER:
SITE_ID
لموقع Hosting الإلكتروني كما هو مُدرَج في مشروعك على 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، يمكنك تنفيذ TARGET_NAME
التالي:
firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...
مكان المَعلمات:
TYPE: نوع مورد Firebase ذي الصلة
- بالنسبة إلى حِزم Cloud Storage، استخدِم
storage
. - بالنسبة إلى مثيلات Realtime Database، استخدِم
database
.
- بالنسبة إلى حِزم Cloud Storage، استخدِم
TARGET_NAME: اسم فريد للمورد أو مجموعة الموارد التي تشترك في قواعد الأمان
RESOURCE_IDENTIFIER - معرّفات الموارد كما هو مُدرَج في مشروعك على Firebase (مثل أسماء مجموعات التخزين أو أرقام تعريف مثيلات قاعدة البيانات) التي تتشارك جميعها قواعد الأمان نفسها
على سبيل المثال، يمكنك تطبيق TARGET_NAME
من main
على مجموعة من ثلاثة
حِزم Cloud Storage إقليمية (تشترك جميعها في قواعد الأمان نفسها)
من خلال تنفيذ الأمر التالي:
firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja
يُرجى العِلم أنّ myproject.firebasestorage.app
هو معرّف الحزمة
التلقائية، في حين أنّ myproject-eu
وmyproject-ja
هما حِزم إضافية
تم إنشاؤهما في مشروع Firebase.
ضبط ملف firebase.json لاستخدام استهدافات النشر
بعد إعداد استهدافات النشر لموارد Firebase، يمكنك الإشارة إلى كل TARGET_NAME
تم تطبيقه في ملف الإعدادات
firebase.json
:
- أنشئ صفيفًا من عناصر الإعداد لكلّ مورد
TYPE
(hosting
أوstorage
أوdatabase
) في Firebase. - في الصفائف، حدِّد
target
(باستخدامTARGET_NAME
) وحدِّد إعداداتك لمورد Firebase أو مجموعة الموارد المرتبطة.
استنادًا إلى الأمثلة أعلاه، حيث يتضمّن مشروعك على Firebase موقعَين Hosting وثلاث حِزم Cloud Storage (تشترك في قواعد firebase.json
الأمان نفسها)، سيظهر ملف 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
في directoryملف ملف directory.
project يمكنك إدارة استهدافات نشر مشروعك من خلال تنفيذ أيٍّ مما يلي
من الأوامر من جذر دليل مشروعك.
الطلب | الوصف |
---|---|
firebase target
|
يسرد استهدافات النشر لدليل مشروعك الحالي. |
firebase target:remove \
|
تزيل هذه الوظيفة موردًا من الهدف الذي تمّ تعيينه له. |
firebase target:clear \
|
لإزالة كل المراجع أو موقع Hosting الإلكتروني من المستهدَف المحدّد |
تعمل الأوامر target:remove
وtarget:clear
على تعديل إعدادات النشر
الهدف تلقائيًا في ملف .firebaserc
في دليل مشروعك.
الاختبار على الجهاز قبل النشر
نفِّذ أيًا من الأوامر التالية من جذر دليل مشروعك.
الطلب | الوصف |
---|---|
firebase emulators:start
|
محاكاة جميع الموارد التي تم ضبطها في دليل المشروع |
firebase emulators:start \ |
محاكاة محتوى Hosting وإعدادات الموقع الإلكترونيHosting المحدّد فقط |
firebase emulators:start \
|
لا يحاكي سوى ملف القواعد المستهدَف Cloud Storage المحدّد. |
firebase emulators:start \
|
محاكاة ملف القواعد فقط لاستهداف Realtime Database المحدّد |
اطّلِع على مزيد من المعلومات حول ضبط رمز Firebase Local Emulator Suite واستخدامه.
نشر موارد Firebase محدّدة
نفِّذ أيًا من الأوامر التالية من جذر دليل مشروعك.
الطلب | الوصف |
---|---|
firebase deploy
|
إنشاء إصدار من جميع الموارد القابلة للنشر في دليل مشروعك |
firebase deploy \
|
نشر محتوى Hosting وإعدادات الموقع الإلكتروني Hosting المحدّد فقط في القناة المباشرة للموقع الإلكتروني |
firebase hosting:channel:deploy CHANNEL_ID \ |
نشر محتوى Hosting وإعدادات الموقع الإلكترونيHosting المحدّد فقط في قناة معاينة للموقع الإلكتروني |
firebase deploy \
|
لا يتم نشر سوى ملف القواعد لاستهداف Cloud Storage المحدّد. |
firebase deploy \
|
نشر ملف القواعد فقط لاستهداف Realtime Database المحدّد |