نشر الأهداف

نشر الأهداف هي معرّفات الأسماء القصيرة (التي تحدّدها بنفسك) لما يلي: تتضمن موارد Firebase في مشروعك على Firebase، مثل موقع Hosting إلكتروني فريد مواد العرض الثابتة أو مجموعة من Realtime Database الأجهزة الافتراضية التي تشترك في مستوى الأمان نفسه القواعد.

تكون عملية نشر الأهداف مفيدة عندما يكون لديك عدة مواقع Hosting، عدة مجموعات بيانات Cloud Storage، أو أمثلة Realtime Database متعددة باستخدام أهداف النشر، يمكن لواجهة سطر الأوامر Firebase تفعيل الإعدادات على واجهة برمجة تطبيقات مورد Firebase أو مجموعة موارد في مشروعك، مثل:

  • إعدادات الاستضافة لكل موقع من مواقعك الإلكترونية التي يبلغ عددها Hosting
  • مواد العرض الثابتة من دليل مشروعك لكل Hosting المواقع الإلكترونية
  • قواعد الأمان التي تشاركها بين مثيلات متعدّدة من Realtime Database أو عدّة مثيلات Cloud Storage مجموعة بيانات

لإعداد هدف نشر:

  1. تطبيق TARGET_NAME على Firebase المستهدَف لمورد أو مجموعة من موارد Firebase.
  2. في ملف firebase.json، الإشارة إلى TARGET_NAME المرتبطة عند ضبط الإعدادات لكل مورد أو مجموعة من الموارد.

عند تشغيل Firebase أوامر CLI (مثل firebase deploy)، يعمل واجهة سطر الأوامر Firebase على إقران كل TARGET_NAME مع موارد Firebase المرتبطة بها. يتواصل واجهة سطر الأوامر بعد ذلك مع Firebase لمشروع الإعدادات لكل مورد.

إعداد أهداف النشر لموارد Firebase

باستخدام واجهة سطر الأوامر Firebase، طبِّق TARGET_NAME (معرّف اسم مختصر تحدّده بنفسك) إلى أحد موارد Firebase أو مجموعة من موارد Firebase. وتتيح منصة Firebase نشر الأهداف لما يلي:

يتم تخزين إعدادات نشر الأهداف في ملف .firebaserc في دليل المشروع، لذا تحتاج فقط إلى إعداد نشر الأهداف مرة واحدة لكل مشروعك.

إعداد أهداف النشر لـ Hosting

لإنشاء هدف نشر وتطبيق TARGET_NAME على موقع إلكتروني تابع لـ Hosting، شغِّل أمر CLI التالي:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

أماكن ظهور المَعلمات:

  • TYPE - نوع مورد Firebase المناسب

    • بالنسبة إلى Firebase Hosting موقع إلكتروني، استخدِم hosting.
  • TARGET_NAME — اسم فريد لموقع Hosting الإلكتروني الذي تعرضه النشر إلى

  • RESOURCE_IDENTIFIERSITE_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، يمكنك تشغيل واجهة سطر الأوامر التالية :

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

أماكن ظهور المَعلمات:

  • TYPE - نوع مورد Firebase المناسب

    • بالنسبة إلى Cloud Storage حزمة، استخدِم storage.
    • بالنسبة إلى Realtime Database مثال، يمكنك استخدام database.
  • 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:

  1. إنشاء مصفوفة من عناصر الإعداد لكل مورد في Firebase باسم TYPE (hosting أو storage أو database).
  2. في الصفائف، حدِّد target (باستخدام TARGET_NAME) وحدِّد إعداداتك لمورد Firebase المرتبط أو مجموعة موارد Firebase.

متابعة الأمثلة المذكورة أعلاه، حيث يتضمن مشروعك في Firebase اثنين Hosting موقع إلكتروني وثلاث مجموعات بيانات من نوع 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 \
TYPE RESOURCE_IDENTIFIER
إزالة مورد من الهدف الذي تم تعيينه إليه
firebase target:clear \
TYPE TARGET_NAME
يؤدي هذا الإجراء إلى إزالة جميع الموارد أو موقع Hosting الإلكتروني من الموقع الإلكتروني المحدَّد. الهدف

يعمل الأمران target:remove وtarget:clear على تعديل عملية النشر تلقائيًا. الإعدادات المستهدفة في ملف .firebaserc بدليل مشروعك.

الاختبار محليًا قبل النشر

شغِّل أيًا من الأوامر التالية من جذر دليل المشروع.

الطلب الوصف
firebase emulators:start يحاكي جميع الموارد التي تم ضبطها في مشروعك. الدليل
firebase emulators:start \
--only hosting:TARGET_NAME
يحاكي فقط محتوى Hosting وإعداداته. موقع Hosting الإلكتروني المحدد
firebase emulators:start \
--only storage:TARGET_NAME
يحاكي ملف القواعد لعنصر Cloud Storage المحدَّد فقط. الهدف
firebase emulators:start \
--only database:TARGET_NAME
يحاكي ملف القواعد لهدف Realtime Database المحدَّد فقط.

مزيد من المعلومات حول ضبط واستخدام Firebase Local Emulator Suite

تفعيل موارد Firebase محدّدة

شغِّل أيًا من الأوامر التالية من جذر دليل المشروع.

الطلب الوصف
firebase deploy إنشاء إصدار لجميع الموارد القابلة للنشر في مشروعك الدليل
firebase deploy \
--only hosting:TARGET_NAME
لا تنشر سوى محتوى Hosting وإعدادات تم تحديد موقع Hosting الإلكتروني للقناة المباشرة الخاصة بالموقع الإلكتروني.
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
لا تنشر سوى محتوى Hosting وإعدادات تم تحديد موقع Hosting الإلكتروني إلى قناة معاينة لـ الموقع الإلكتروني
firebase deploy \
--only storage:TARGET_NAME
نشر ملف القواعد لـ Cloud Storage المحدد فقط الهدف
firebase deploy \
--only database:TARGET_NAME
نشر ملف القواعد فقط لهدف Realtime Database المحدّد