مرجع واجهة سطر الأوامر لمنصة Firebase

يوفّر واجهة سطر الأوامر في Firebase (GitHub) مجموعة متنوعة من الأدوات لإدارة مشاريع Firebase وعرضها ونشرها.

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

إعداد واجهة سطر الأوامر أو تعديله

تثبيت واجهة سطر الأوامر في Firebase

يمكنك تثبيت واجهة سطر الأوامر في Firebase باستخدام طريقة تتطابق مع نظام التشغيل و/أو مستوى الخبرة و/أو حالة الاستخدام. بغض النظر عن طريقة تثبيت واجهة سطر الأوامر، يمكنك الوصول إلى الوظائف نفسها والأمر firebase نفسه.

نظام التشغيل Windows macOS نظام التشغيل Linux

نظام التشغيل Windows

يمكنك تثبيت واجهة سطر الأوامر في Firebase لنظام التشغيل Windows باستخدام أحد الخيارات التالية:

الخيار الوصف مقترَحة لـ...
برنامج ثنائي مستقل نزِّل البرنامج الثنائي المستقل لواجهة سطر الأوامر. بعد ذلك، يمكنك الوصول إلى الملف التنفيذي لفتح واجهة أوامر حيث يمكنك تشغيل الأمر firebase. المطوّرون الجُدد

المطوِّرون الذين لا يستخدمون Node.js أو لا يستخدمونها
npm استخدِم npm (أداة إدارة حِزم العُقد) لتثبيت واجهة سطر الأوامر وتفعيل أمر firebase المتاح عالميًا. المطوّرون الذين يستخدمون Node.js

برنامج ثنائي مستقل

لتنزيل البرنامج الثنائي وتشغيله على واجهة سطر الأوامر في Firebase، يُرجى اتّباع الخطوات التالية:

  1. نزِّل برنامج واجهة سطر الأوامر في Firebase لنظام التشغيل Windows.

  2. انتقِل إلى البرنامج الثنائي لفتح واجهة أوامر يمكنك فيها تشغيل الأمر firebase.

  3. يُرجى المتابعة إلى تسجيل الدخول واختبار واجهة سطر الأوامر.

npm

لاستخدام npm (إدارة حزم العُقد) لتثبيت واجهة سطر الأوامر في Firebase، اتّبِع الخطوات التالية:

  1. ثبِّت Node.js باستخدام nvm-windows (مدير إصدارات العقدة). يؤدي تثبيت Node.js إلى تثبيت أدوات أمر npm تلقائيًا.

  2. ثبِّت واجهة سطر الأوامر في Firebase من خلال npm من خلال تنفيذ الأمر التالي:

    npm install -g firebase-tools

    يفعِّل هذا الأمر الأمر firebase المتاح عالميًا.

  3. يُرجى المتابعة إلى تسجيل الدخول واختبار واجهة سطر الأوامر.

نظام التشغيل macOS أو Linux

يمكنك تثبيت واجهة سطر الأوامر في Firebase لنظام التشغيل macOS أو Linux باستخدام أحد الخيارات التالية:

الخيار الوصف مقترَحة لـ...
نص برمجي للتثبيت التلقائي شغِّل أمرًا واحدًا يرصد نظام التشغيل لديك تلقائيًا، وينزّل أحدث إصدار من واجهة سطر الأوامر، ثم يفعّل أمر firebase المتاح عالميًا. المطوّرون الجُدد

مطوّرو البرامج الذين لا يستخدمون Node.js أو لا يستخدمونها

عمليات النشر المبرمَجة في بيئة CI/CD
برنامج ثنائي مستقل نزِّل البرنامج الثنائي المستقل لواجهة سطر الأوامر. وبعد ذلك، يمكنك إعداد البرنامج الثنائي وتشغيله ليلائم سير عملك. عمليات سير عمل قابلة للتخصيص بالكامل باستخدام واجهة سطر الأوامر
npm استخدِم npm (أداة إدارة حِزم العُقد) لتثبيت واجهة سطر الأوامر وتفعيل أمر firebase المتاح عالميًا. المطوّرون الذين يستخدمون Node.js

نص برمجي للتثبيت التلقائي

لتثبيت واجهة سطر الأوامر في Firebase باستخدام النص البرمجي للتثبيت التلقائي، يُرجى اتّباع الخطوات التالية:

  1. شغِّل الأمر cURL التالي:

    curl -sL https://firebase.tools | bash

    يرصد هذا النص البرمجي تلقائيًا نظام التشغيل المستخدَم، وينزّل أحدث إصدار من واجهة سطر الأوامر في Firebase، ثم يفعِّل أمر firebase المتاح عالميًا.

  2. يُرجى المتابعة إلى تسجيل الدخول واختبار واجهة سطر الأوامر.

للاطّلاع على مزيد من الأمثلة والتفاصيل حول النص البرمجي للتثبيت التلقائي، يمكنك الرجوع إلى رمز مصدر النص البرمجي في firebase.tools.

برنامج ثنائي مستقل

لتنزيل البرنامج الثنائي الخاص بواجهة سطر الأوامر لمنصة Firebase وتشغيله، عليك اتّباع الخطوات التالية:

  1. يمكنك تنزيل البرنامج الثنائي لواجهة سطر الأوامر في Firebase لنظام التشغيل: macOS | Linux

  2. (اختياري) يمكنك إعداد أمر firebase المتاح عالميًا.

    1. اجعل البرنامج الثنائي قابلاً للتنفيذ عن طريق تشغيل chmod +x ./firebase_tools.
    2. أضِف مسار البرنامج الثنائي إلى PATH.
  3. يُرجى المتابعة إلى تسجيل الدخول واختبار واجهة سطر الأوامر.

npm

لاستخدام npm (مدير حِزم العُقد) لتثبيت واجهة سطر الأوامر لمنصة Firebase، اتّبِع الخطوات التالية:

  1. ثبِّت Node.js باستخدام nvm (مدير إصدارات العقدة).
    يؤدي تثبيت Node.js إلى تثبيت أدوات الأمر npm تلقائيًا.

  2. ثبِّت واجهة سطر الأوامر في Firebase من خلال npm من خلال تنفيذ الأمر التالي:

    npm install -g firebase-tools

    يفعِّل هذا الأمر الأمر firebase المتاح عالميًا.

  3. يُرجى المتابعة إلى تسجيل الدخول واختبار واجهة سطر الأوامر.

سجِّل الدخول واختبِر واجهة سطر الأوامر في Firebase

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

  1. سجّل الدخول إلى Firebase باستخدام حسابك في Google عن طريق تشغيل الأمر التالي:

    firebase login

    يعمل هذا الأمر على ربط جهازك المحلي بمنصة Firebase ويمنحك إمكانية الوصول إلى مشاريع Firebase.

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

    firebase projects:list

    يجب أن تكون القائمة المعروضة مماثلة لمشاريع Firebase المدرجة في وحدة تحكم Firebase.

التحديث إلى آخر إصدار من واجهة سطر الأوامر

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

تعتمد طريقة تحديث إصدار واجهة سطر الأوامر على نظام التشغيل الذي تستخدمه وطريقة تثبيت واجهة سطر الأوامر.

Windows

macOS

  • النص البرمجي للتثبيت التلقائي: تشغيل curl -sL https://firebase.tools | upgrade=true bash
  • برنامج ثنائي مستقل: يمكنك تنزيل الإصدار الجديد، ثم استبداله على النظام
  • npm: تشغيل npm install -g firebase-tools

Linux

  • النص البرمجي للتثبيت التلقائي: تشغيل curl -sL https://firebase.tools | upgrade=true bash
  • برنامج ثنائي مستقل: يمكنك تنزيل الإصدار الجديد، ثم استبداله على النظام
  • npm: تشغيل npm install -g firebase-tools

استخدام واجهة سطر الأوامر مع أنظمة CI

تتطلّب واجهة سطر الأوامر في Firebase متصفّحًا لإكمال عملية المصادقة، لكنّ واجهة سطر الأوامر متوافقة تمامًا مع واجهة CI وغيرها من البيئات التي لا تتضمّن واجهة مستخدم رسومية.

  1. على جهاز مزوّد بمتصفّح، ثبِّت واجهة سطر الأوامر في Firebase.

  2. ابدأ عملية تسجيل الدخول من خلال تشغيل الأمر التالي:

    firebase login:ci
  3. انتقِل إلى عنوان URL المقدَّم، ثم سجِّل الدخول باستخدام حساب Google.

  4. طباعة رمز مميز للتحديث جديد ولن تتأثر جلسة واجهة سطر الأوامر الحالية.

  5. يمكنك تخزين الرمز المميّز للمخرج بطريقة آمنة ولكن يمكن الوصول إليها في نظام CI الخاص بك.

  6. يمكنك استخدام هذا الرمز المميّز عند تنفيذ أوامر firebase. يمكنك استخدام أي من الخيارين التاليَين:

    • الخيار 1: تخزين الرمز المميّز باعتباره متغيّر البيئة FIREBASE_TOKEN وسيستخدم نظامك الرمز المميّز تلقائيًا.

    • الخيار 2: يمكنك تشغيل جميع طلبات firebase باستخدام العلامة --token TOKEN في نظام CI.
      في ما يلي ترتيب أسبقية تحميل الرمز المميز: العلامة، ومتغيّر البيئة، ومشروع Firebase المطلوب.

إعداد مشروع على Firebase

إنّ العديد من المهام الشائعة التي يتم إجراؤها باستخدام واجهة سطر الأوامر، مثل النشر في مشروع Firebase، تتطلب دليل المشروع. يمكنك إنشاء دليل مشروع باستخدام الأمر firebase init. يكون دليل المشروع عادةً هو دليل جذر التحكّم في المصدر نفسه، وبعد تشغيل firebase init، يحتوي الدليل على ملف إعداد firebase.json.

لإعداد مشروع جديد على Firebase، شغِّل الأمر التالي من داخل دليل تطبيقك:

firebase init

يوجِّهك الأمر firebase init إلى خطوات إعداد دليل مشروعك وبعض منتجات Firebase. أثناء إعداد المشروع، تطلب منك واجهة سطر الأوامر في Firebase إكمال المهام التالية:

  • اختَر منتجات Firebase المطلوبة لإعدادها في مشروعك على Firebase.

    تطلب منك هذه الخطوة ضبط إعدادات لملفات محدّدة للمنتجات المحدّدة. للمزيد من التفاصيل حول عمليات الضبط هذه، يمكنك الرجوع إلى مستندات المنتج المحدد (على سبيل المثال، الاستضافة). تجدر الإشارة إلى أنّه يمكنك في أي وقت تشغيل firebase init في وقت لاحق لإعداد المزيد من منتجات Firebase.

  • اختَر مشروعًا تلقائيًا في Firebase.

    تربط هذه الخطوة دليل المشروع الحالي بمشروع Firebase حتى يتم تنفيذ الأوامر الخاصة بالمشروع (مثل firebase deploy) ضد مشروع Firebase المناسب.

    من الممكن أيضًا ربط عدة مشاريع Firebase (مثل مشروع مرحلي ومشروع إنتاج) بدليل المشروع نفسه.

في نهاية عملية الإعداد، ينشئ Firebase تلقائيًا الملفين التاليين في جذر دليل التطبيق المحلي:

  • ملف إعداد firebase.json يسرد إعدادات مشروعك.

  • ملف .firebaserc يخزِّن aliases لمشروعك.

ملف firebase.json

ينشئ الأمر firebase init ملف إعداد firebase.json في جذر دليل مشروعك.

يجب توفّر ملف firebase.json لنشر مواد العرض باستخدام واجهة سطر الأوامر في Firebase لأنّه يحدِّد الملفات والإعدادات من دليل المشروع التي يتم نشرها في مشروعك على Firebase. وبما أنّه يمكن تحديد بعض الإعدادات في دليل المشروع أو وحدة تحكُّم Firebase، احرِص على حلّ أي تعارضات محتملة بشأن عمليات النشر.

يمكنك ضبط معظم خيارات استضافة Firebase مباشرةً في ملف firebase.json. أمّا بالنسبة إلى خدمات Firebase الأخرى التي يمكن نشرها باستخدام واجهة سطر الأوامر في Firebase، فسينشئ الأمر firebase init ملفات محددة يمكنك من خلالها تحديد إعدادات تلك الخدمات، مثل ملف index.js لدوال السحابة. يمكنك أيضًا إعداد عناصر الجذب المسبق أو ما بعد النشر في ملف firebase.json.

في ما يلي مثال على ملف firebase.json يتضمّن الإعدادات التلقائية في حال اختيار "استضافة Firebase" وCloud Firestore وCloud Functions for Firebase (مع تحديد المصدر من TypeScript وخيارات لينت) أثناء الإعداد.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

أثناء استخدام firebase.json تلقائيًا، يمكنك ضبط العلامة --config PATH لتحديد ملف إعداد بديل.

إعداد قواعد بيانات Cloud Firestore المتعددة

عند تشغيل firebase init، سيحتوي ملف firebase.json على مفتاح firestore واحد يتوافق مع قاعدة البيانات التلقائية لمشروعك، كما هو موضّح أعلاه.

إذا كان مشروعك يتضمّن عدة قواعد بيانات في Cloud Firestore، عدِّل ملف firebase.json لربط قواعد الأمان المختلفة في Cloud Firestore وملفات مصدر فهرس قاعدة البيانات بكل قاعدة بيانات. قم بتعديل الملف باستخدام صفيف JSON، مع إدخال واحد لكل قاعدة بيانات.

      "firestore": [
        {
          "database": "default",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

ملفات الدوال السحابية التي يتم تجاهلها عند النشر

في وقت نشر الوظيفة، يحدد واجهة سطر الأوامر تلقائيًا قائمة بالملفات الموجودة في دليل functions المطلوب تجاهلها. ويمنع ذلك نشر الملفات غير الضرورية في الخلفية التي قد تزيد من حجم بيانات عملية النشر.

في ما يلي قائمة الملفات التي تم تجاهلها تلقائيًا وتظهر بتنسيق JSON:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

إذا أضفت قيمك المخصّصة لـ ignore في firebase.json، تأكَّد من الاحتفاظ بقائمة الملفات المعروضة أعلاه (أو إضافتها، إذا كانت مفقودة).

إدارة الأسماء المستعارة للمشروع

يمكنك ربط مشاريع متعددة في Firebase بدليل المشاريع نفسه. على سبيل المثال، يمكنك استخدام أحد المشاريع في Firebase لإجراء مرحلة مرحلية وآخر للإنتاج. باستخدام بيئات مشروع مختلفة، يمكنك التحقق من التغييرات قبل النشر في الإنتاج. يسمح لك الأمر firebase use بالتبديل بين الأسماء المستعارة بالإضافة إلى إنشاء أسماء مستعارة جديدة.

إضافة اسم مستعار للمشروع

عند اختيار مشروع Firebase أثناء إعداد المشروع، يتم تلقائيًا تعيين الاسم المستعار default للمشروع. ومع ذلك، للسماح بتشغيل الأوامر الخاصة بالمشروعات مع مشروع مختلف على Firebase مع الاستمرار في استخدام دليل المشروع نفسه، شغِّل الأمر التالي من داخل دليل مشروعك:

firebase use --add

يطلب منك هذا الأمر اختيار مشروع آخر في Firebase وتعيينه كاسم مستعار. تتم كتابة تعيينات الأسماء المستعارة في ملف .firebaserc داخل دليل مشروعك.

استخدام الأسماء المستعارة للمشروع

لاستخدام الأسماء المستعارة لمشروعات Firebase المحددة، شغِّل أيًا من الأوامر التالية من داخل دليل مشروعك.

Command الوصف
firebase use عرض قائمة بالأسماء المستعارة المحددة حاليًا لدليل مشروعك
firebase use \
PROJECT_ID|ALIAS
توجّه هذه السمة جميع الأوامر لتنفيذها ضد مشروع Firebase المحدّد.
يستخدم واجهة سطر الأوامر هذا المشروع على أنّه "المشروع النشِط" حاليًا.
firebase use --clear يؤدي إلى محو المشروع النشط.

شغِّل firebase use PROJECT_ID|ALIAS لضبط مشروع نشط جديد قبل تشغيل أوامر واجهة سطر الأوامر الأخرى.

firebase use \
--unalias PROJECT_ALIAS
لإزالة الاسم المستعار من دليل المشروع.

يمكنك إلغاء ما يتم استخدامه كمشروع نشط حاليًا من خلال تمرير علامة --project باستخدام أي أمر CLI. على سبيل المثال، يمكنك ضبط واجهة سطر الأوامر لتشغيله مقابل مشروع على Firebase تم تخصيص الاسم البديل staging له. إذا أردت تنفيذ أمر واحد ضد مشروع Firebase الذي حدّدته للاسم المستعار prod، يمكنك تشغيل firebase deploy --project=prod على سبيل المثال.

التحكم في المصدر والأسماء المستعارة للمشروعات

بشكل عام، يجب التحقق من ملف .firebaserc للتحكم في المصدر للسماح لفريقك بمشاركة الأسماء المستعارة للمشروع. أمّا بالنسبة إلى المشاريع مفتوحة المصدر أو النماذج الأوّلية، يجب عدم التحقّق بشكل عام من ملف .firebaserc.

إذا كان لديك مشروع تطوير مخصّص لاستخدامك فقط، يمكنك وضع علامة --project مع كل أمر أو تشغيل firebase use PROJECT_ID بدون تخصيص اسم مستعار لمشروع Firebase.

عرض مشروع Firebase واختباره على الجهاز

يمكنك عرض مشروع Firebase واختباره على عناوين URL مُستضافة محليًا قبل النشر في مرحلة الإنتاج. إذا أردت فقط اختبار ميزات محدّدة، يمكنك استخدام قائمة مفصولة بفواصل في علامة ضمن الأمر firebase serve.

شغّل الأمر التالي من جذر دليل المشروع المحلي إذا كنت تريد تنفيذ أي من المهمتين التاليتين:

firebase serve --only hosting

محاكاة مشروعك باستخدام دوال HTTP المحلية

شغِّل أيًّا من الأوامر التالية من دليل مشروعك لمحاكاة مشروعك باستخدام دوال HTTP المحلية.

  • لمحاكاة دوال HTTP والاستضافة من أجل اختبار عناوين URL المحلية، استخدِم أحد الأمرَين التاليَين:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • لمحاكاة دوال HTTP فقط، استخدِم الأمر التالي:

    firebase serve --only functions

الاختبار من الأجهزة المحلية الأخرى

لا يردّ "firebase serve" تلقائيًا إلا على الطلبات الواردة من "localhost". وهذا يعني أنك ستتمكن من الوصول إلى المحتوى المستضاف من متصفّح الويب على جهاز الكمبيوتر، وليس من أجهزة أخرى على شبكتك. إذا كنت تريد إجراء الاختبار من أجهزة محلية أخرى، استخدِم علامة --host على النحو التالي:

firebase serve --host 0.0.0.0  // accepts requests to any host

النشر في مشروع Firebase

تدير واجهة سطر الأوامر في Firebase عملية نشر الرموز البرمجية ومواد العرض في مشروعك على Firebase، بما في ذلك:

  • إصدارات جديدة من مواقع استضافة Firebase
  • دوال السحابة الإلكترونية الجديدة أو المعدّلة أو الحالية لبرنامج Firebase
  • قواعد قاعدة بيانات Firebase في الوقت الفعلي
  • قواعد التخزين في السحابة الإلكترونية لبرنامج Firebase
  • قواعد Cloud Firestore
  • مؤشرات Cloud Firestore

للنشر في مشروع على Firebase، شغِّل الأمر التالي من دليل مشروعك:

firebase deploy

يمكنك اختياريًا إضافة تعليق على كل عملية نشر. سيتم عرض هذا التعليق مع معلومات النشر الأخرى في صفحة استضافة Firebase الخاصة بمشروعك. مثال:

firebase deploy -m "Deploying the best new feature ever."

عند استخدام الأمر firebase deploy، انتبه لما يلي:

  • لنشر الموارد من دليل مشروع، يجب أن يحتوي دليل المشروع على ملف firebase.json. يتم إنشاء هذا الملف لك تلقائيًا باستخدام الأمر firebase init.

  • تنشئ firebase deploy تلقائيًا إصدارًا لجميع الموارد القابلة للنشر في دليل المشروع. لنشر خدمات أو ميزات معيّنة في Firebase، يمكنك استخدام النشر الجزئي.

تعارضات النشر لقواعد الأمان

بالنسبة إلى "قاعدة بيانات Firebase في الوقت الفعلي" وCloud Storage for Firebase وCloud Firestore، يمكنك تحديد قواعد الأمان إما في دليل المشروع المحلي أو في وحدة تحكُّم Firebase.

هناك خيار آخر لتجنُّب تعارضات النشر وهو استخدام النشر الجزئي وتحديد القواعد فقط من خلال "وحدة تحكُّم Firebase".

حصص النشر

من المحتمل (ولكن هذا غير مرجّح) أن تتجاوز حصة معيّنة تحدّ من معدّل عمليات نشر Firebase أو حجمها. على سبيل المثال، عند نشر أعداد كبيرة جدًا من الدوال، قد تتلقى رسالة خطأ HTTP 429 Quota. لحل هذه المشاكل، يمكنك محاولة استخدام النشر الجزئي.

التراجع عن عملية نشر

يمكنك العودة إلى عملية نشر "استضافة Firebase" من صفحة استضافة Firebase الخاصة بمشروعك من خلال اختيار إجراء العودة إلى الإصدار السابق للإصدار المطلوب.

لا يمكن حاليًا إعادة إصدارات قواعد الأمان لقاعدة بيانات Firebase في الوقت الفعلي أو Cloud Storage for Firebase أو Cloud Firestore.

نشر خدمات محددة في Firebase

إذا كنت تريد نشر خدمات أو ميزات معيّنة في Firebase فقط، يمكنك استخدام قائمة مفصولة بفواصل في علامة على الأمر firebase deploy. على سبيل المثال، ينشر الأمر التالي محتوى استضافة Firebase وقواعد أمان Cloud Storage.

firebase deploy --only hosting,storage

يسرد الجدول التالي الخدمات والميزات المتاحة للنشر الجزئي. تتطابق الأسماء في العلامات مع المفاتيح في ملف إعداد firebase.json.

بنية العلامة الخدمة أو الميزة المنشورة
--only hosting محتوى "استضافة Firebase"
--only database قواعد قاعدة بيانات Firebase في الوقت الفعلي
--only storage قواعد التخزين في السحابة الإلكترونية لبرنامج Firebase
--only firestore قواعد Cloud Firestore وفهارس جميع قواعد البيانات التي تم ضبطها
--only functions وظائف السحابة الإلكترونية لمنصّة Firebase (تتوفّر إصدارات أكثر تحديدًا من هذه العلامة)

نشر دوال معيّنة

عند نشر الدوال، يمكنك استهداف دوال معيّنة. مثال:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

ويمكنك أيضًا تجميع الدوالّ في مجموعات تصدير في ملف /functions/index.js. تسمح لك دوال التجميع بنشر دوال متعددة باستخدام أمر واحد.

على سبيل المثال، يمكنك كتابة الدوال التالية لتحديد groupA وgroupB:

var functions = require('firebase-functions');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

في هذا المثال، يحتوي ملف functions/groupB.js منفصل على دوال إضافية تحدّد الدوال في groupB على وجه التحديد. مثال:

var functions = require('firebase-functions');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

في هذا المثال، يمكنك نشر جميع دوال groupA من خلال تشغيل الأمر التالي من دليل المشروع:

firebase deploy --only functions:groupA

أو يمكنك استهداف دالة معينة داخل مجموعة عن طريق تشغيل الأمر التالي:

firebase deploy --only functions:groupA.function1,groupB.function4

حذف الدوال

يتيح واجهة سطر الأوامر في Firebase إمكانية استخدام الأوامر والخيارات التالية لحذف الوظائف التي تم نشرها سابقًا:

  • لحذف جميع الدوال التي تطابق الاسم المحدّد في جميع المناطق:

    firebase functions:delete FUNCTION-1_NAME

  • يؤدي هذا الإجراء إلى حذف دالة محدّدة تعمل في منطقة غير تلقائية:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • يؤدي هذا الإجراء إلى حذف أكثر من دالة:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • حذف مجموعة دوال محددة:

    firebase functions:delete GROUP_NAME

  • لتجاوز طلب التأكيد:

    firebase functions:delete FUNCTION-1_NAME --force

إعداد المهام النصية التي سيتم نشرها مسبقًا وما بعد النشر

يمكنك ربط نصوص الأوامر البرمجية بالأمر firebase deploy لتنفيذ مهام النشر المسبق أو ما بعد النشر. على سبيل المثال، يمكن للنص البرمجي الذي يتم نشره قبل النشر تحويل رمز TypeScript إلى JavaScript، ويمكن لميزة "الجذب بعد النشر" إرسال إشعار إلى المشرفين بعمليات نشر محتوى الموقع الجديد في "استضافة Firebase".

لإعداد عناصر الجذب قبل النشر أو ما بعد النشر، أضِف النصوص البرمجية bash إلى ملف إعدادات firebase.json. يمكنك تحديد نصوص برمجية مختصرة مباشرةً في ملف firebase.json أو الرجوع إلى ملفات أخرى متوفّرة في دليل مشروعك.

على سبيل المثال، النص البرمجي التالي هو تعبير firebase.json لمهمة ما بعد النشر التي ترسِل رسالة Slack عند النشر الناجح على "استضافة Firebase".

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

يوجد ملف النص البرمجي messageSlack.sh في دليل المشروع ويبدو على النحو التالي:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

يمكنك إعداد عنصرَي الجذب predeploy وpostdeploy لأيٍّ من مواد العرض التي يمكنك نشرها. يُرجى العِلم أنّ تشغيل firebase deploy يؤدي إلى جميع مهام النشر المُسبَق وما بعد النشر المحدَّدة في ملف firebase.json. لتشغيل المهام المرتبطة بخدمة Firebase محدّدة فقط، يمكنك استخدام أوامر النشر الجزئي.

تطبع الخطافتان predeploy وpostdeploy الإخراج العادي وتدفق الأخطاء للنصوص البرمجية إلى الوحدة الطرفية. بالنسبة إلى حالات الفشل، يُرجى ملاحظة ما يلي:

  • في حال تعذُّر إكمال عملية إعادة النشر على النحو المتوقَّع، سيتم إلغاء عملية النشر.
  • في حال تعذّر النشر لأي سبب، لا يتم تشغيل عناصر الجذب بعد النشر.

متغيرات البيئة

ضمن النصوص البرمجية التي يتم تشغيلها في عناصر الجذب قبل النشر وما بعد النشر، تتوفّر متغيرات البيئة التالية:

  • $GCLOUD_PROJECT: رقم تعريف مشروع المشروع النشط
  • $PROJECT_DIR: الدليل الجذري الذي يحتوي على ملف firebase.json.
  • $RESOURCE_DIR: (للنصوص البرمجية hosting وfunctions فقط) الموقع الجغرافي للدليل الذي يحتوي على موارد الاستضافة أو دوال السحابة الإلكترونية التي سيتم نشرها

إدارة عدة مثيلات من قاعدة بيانات الوقت الفعلي

ويمكن أن يحتوي مشروع Firebase على مثيلات متعددة من "قاعدة بيانات Firebase في الوقت الفعلي". تتفاعل أوامر واجهة سطر الأوامر تلقائيًا مع مثيل قاعدة البيانات التلقائي.

ومع ذلك، يمكنك التفاعل مع مثيل قاعدة بيانات غير تلقائي باستخدام العلامة --instance DATABASE_NAME. تتوافق الأوامر التالية مع العلامة --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

مرجع الطلبات

الأوامر الإدارية لواجهة سطر الأوامر

Command الوصف
مساعدة يعرض معلومات المساعدة حول واجهة سطر الأوامر أو أوامر محددة.
init ربط مشروع جديد على Firebase وإعداده في الدليل الحالي يؤدي هذا الأمر إلى إنشاء ملف إعداد firebase.json في الدليل الحالي.
login يصادق واجهة سطر الأوامر على حسابك على Firebase. يتطلب الوصول إلى متصفح ويب.
لتسجيل الدخول إلى واجهة سطر الأوامر في بيئات بعيدة لا تسمح بالوصول إلى localhost، استخدِم العلامة --no-localhost.
login:ci ينشئ رمزًا مميزًا للمصادقة لاستخدامه في البيئات غير التفاعلية.
تسجيل الخروج لتسجيل الخروج من واجهة سطر الأوامر من حسابك على Firebase.
فتح يفتح متصفحًا لموارد المشروع ذات الصلة.
المشروعات:قائمة يسرد جميع مشاريع Firebase التي يمكنك الوصول إليها.
استخدام لضبط مشروع Firebase النشط لواجهة سطر الأوامر.
يدير الأسماء المستعارة للمشروع.

أوامر إدارة المشروعات

Command الوصف
إدارة مشاريع Firebase
projects:addfirebase إضافة موارد Firebase إلى مشروع حالي على Google Cloud
المشروعات:إنشاء ينشئ مشروعًا جديدًا على Google Cloud، ثم يضيف موارد Firebase إلى المشروع الجديد.
المشروعات:قائمة يسرد جميع مشاريع Firebase التي يمكنك الوصول إليها.
إدارة تطبيقات Firebase (iOS وAndroid والويب)
apps:create ينشئ تطبيق Firebase جديدًا في المشروع النشط.
apps:list يسرد تطبيقات Firebase المسجَّلة في المشروع النشط.
apps:sdkconfig يطبع هذا الخيار إعدادات خدمات Google لتطبيق Firebase.
setup:web تمت إزالة هذا العمود. بدلاً من ذلك، يمكنك استخدام apps:sdkconfig وتحديد web كوسيطة للنظام الأساسي.
طباعة إعدادات خدمات Google لتطبيق الويب على Firebase.
إدارة تجزئات شهادة SHA (نظام التشغيل Android فقط)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
تتم إضافة تجزئة شهادة SHA المحدّدة إلى تطبيق Android المحدّد في Firebase.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
يؤدي هذا الإجراء إلى حذف تجزئة شهادة SHA المحدّدة من تطبيق Android المحدّد في Firebase.
apps:android:sha:list \
FIREBASE_APP_ID
يسرد علامات تجزئة شهادة SHA لتطبيق Android المحدّد على Firebase.

النشر والتطوير المحلي

تتيح لك هذه الأوامر نشر موقع "استضافة Firebase" والتفاعل معه.

Command الوصف
deploy تعمل هذه السياسة على تفعيل الرمز ومواد العرض من دليل مشروعك في المشروع النشط. بالنسبة إلى استضافة Firebase، يجب توفُّر ملف إعداد firebase.json.
عرض بدء خادم ويب محلي من خلال إعداد "استضافة Firebase" بالنسبة إلى استضافة Firebase، يجب توفُّر ملف إعداد firebase.json.

أوامر App Distribution

Command الوصف
appdistribution:توزيع \
--التطبيق FIREBASE_APP_ID
يتيح هذا الإصدار للمختبِرين.
appdistribution:testers:add إضافة مختبِرين إلى المشروع
appdistribution:testers:remove إزالة المختبِرين من المشروع

أوامر المصادقة (إدارة المستخدم)

Command الوصف
auth:export لتصدير حسابات المستخدمين في المشروع النشط إلى ملف بتنسيق JSON أو CSV. للحصول على مزيد من التفاصيل، راجِع صفحة auth:import وauth:export.
auth:import لاستيراد حسابات المستخدمين من ملف JSON أو CSV إلى المشروع النشط. للحصول على مزيد من التفاصيل، راجِع صفحة auth:import وauth:export.

أوامر Cloud Firestore

Command الوصف
firestore:locations

أدرج المواقع المتاحة لقاعدة بيانات Cloud Firestore.

firestore:databases:create DATABASE_ID

أنشِئ مثيل قاعدة بيانات في الوضع الأصلي في مشروع Firebase.

يأخذ الأمر العلامات التالية:

  • --location <region name> لتحديد موقع النشر لقاعدة البيانات. وتجدر الإشارة إلى أنه يمكنك تشغيل Firebase Firestore:locations لسرد المواقع الجغرافية المتوفّرة. مَعلمة مطلوبة.
  • --delete-protection <deleteProtectionState>: للسماح بحذف قاعدة البيانات المحدّدة أو منعها. والقيمتان الصالحتان هما ENABLED أو DISABLED. وتكون الإعدادات التلقائية DISABLED.
  • --point-in-time-recovery <PITRState> لضبط ما إذا كان خيار الاسترداد مفعَّلاً أم لا. والقيمتان الصالحتان هما ENABLED أو DISABLED. وتكون الإعدادات التلقائية DISABLED. اختياريّ.
firestore:databases:list

إدراج قواعد البيانات في مشروع Firebase

firestore:databases:get DATABASE_ID

احصل على إعدادات قاعدة البيانات لقاعدة بيانات محدّدة في مشروعك على Firebase.

firestore:databases:update DATABASE_ID

يمكنك تعديل إعدادات قاعدة بيانات قاعدة بيانات محدّدة في مشروعك على Firebase.

يجب علمة واحدة على الأقل. يأخذ الأمر العلامات التالية:

  • --delete-protection <deleteProtectionState>: للسماح بحذف قاعدة البيانات المحدّدة أو منعها. والقيمتان الصالحتان هما ENABLED أو DISABLED. وتكون الإعدادات التلقائية DISABLED.
  • --point-in-time-recovery <PITRState> لضبط ما إذا كان خيار الاسترداد مفعَّلاً أم لا. والقيمتان الصالحتان هما ENABLED أو DISABLED. وتكون الإعدادات التلقائية DISABLED. اختياريّ.
firestore:databases:delete DATABASE_ID

احذف قاعدة بيانات في مشروع Firebase.

firestore:indexes

أدرِج فهارس لقاعدة بيانات في مشروع Firebase.

يأخذ الأمر العلامة التالية:

  • --database DATABASE_ID لتحديد اسم قاعدة البيانات التي سيتم إدراج الفهارس لها. وفي حال عدم توفيرها، يتم إدراج الفهارس لقاعدة البيانات التلقائية.
firestore:delete

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

يُرجى العِلم أنّ حذف بيانات Cloud Firestore باستخدام واجهة سطر الأوامر يتطلّب تكاليف قراءة وحذفها. لمزيد من المعلومات، يُرجى الاطّلاع على فهم فوترة Cloud Firestore.

يأخذ الأمر العلامة التالية:

  • --database DATABASE_ID لتحديد اسم قاعدة البيانات التي يتم حذف المستندات منها. وفي حال عدم تحديد أي خيار، يتم حذف المستندات من قاعدة البيانات التلقائية. اختياريّ.

الدوال السحابية لأوامر Firebase

Command الوصف
functions:config:clone نسخ بيئة مشروع آخر إلى مشروع Firebase النشط.
functions:config:get يسترد قيم الإعداد الحالية لدوال السحابة الإلكترونية للمشروع النشط.
functions:config:set تخزين قيم إعدادات وقت التشغيل لدوال السحابة الخاصة بالمشروع النشط
functions:config:unset إزالة القيم من إعدادات وقت تشغيل المشروع النشط
functions:log يقرأ السجلات من دوال السحابة الإلكترونية المنشورة.

لمزيد من المعلومات، راجِع مستندات ضبط البيئة.

أوامر Crashlytics

Command الوصف
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
تنشئ هذه الدالة معرّفًا فريدًا لملف الربط في ملف مورد Android (XML) المحدّد.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
يحمّل ملف الربط (TXT) المتوافق مع Proguard لهذا التطبيق، ويربطه بمعرّف ملف التعيين الذي تم تعريفه في ملف مورد Android (XML) المحدّد.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
تنشئ ملف رموز متوافقًا مع Crashlytics لأعطال المكتبة الأصلية على Android وتحمِّله إلى خوادم Firebase.

أوامر الإضافات

Command الوصف
ext يعرض معلومات عن كيفية استخدام أوامر إضافات Firebase.
يسرد نُسخ الإضافات التي تم تثبيتها في المشروع النشط.
ext:Configure \
EXTENSION_INSTANCE_ID
هذا الإعداد يعيد ضبط قيم المَعلمات لمثيل الإضافة في بيان الإضافة.
ext:info \
PUBLISHER_ID/EXTENSION_ID
يطبع معلومات تفصيلية حول إحدى الإضافات.
ext:تثبيت \
PUBLISHER_ID/EXTENSION_ID
إدراج مثيل جديد لإحدى الإضافات في بيان الإضافة.
ext:list يسرد جميع نُسخ الإضافات المثبّتة في مشروع Firebase.
يطبع رقم تعريف المثيل لكل إضافة.
ext:إلغاء التثبيت \
EXTENSION_INSTANCE_ID
لإزالة النسخة الافتراضية للإضافة من بيان الإضافة.
ext:تعديل \
EXTENSION_INSTANCE_ID
لتحديث مثيل الإضافة إلى أحدث إصدار في بيان الإضافة.
ext:export يصدِّر جميع مثيلات الإضافات المثبَّتة من مشروعك إلى بيان الإضافة.

أوامر ناشر الإضافات

Command الوصف
ext:dev:init لإعداد قاعدة رموز برمجية أساسية لإضافة جديدة في الدليل الحالي.
ext:dev:list \
PUBLISHER_ID
تطبع قائمة بجميع الإضافات التي حمّلها الناشر.
ext:dev:register تسجيل مشروع Firebase على أنّه مشروع لناشر الإضافات
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
توقِف نهائيًا إصدارات الإضافة التي تتطابق مع الاستناد إلى الإصدار الذي تشير إليه.
يمكن أن تكون إسناد الإصدار إصدارًا واحدًا (مثل 1.0.0) أو مجموعة من الإصدارات (مثل >1.0.0).
إذا لم يتم تقديم مرجع إصدار، سيتم إيقاف جميع إصدارات تلك الإضافة نهائيًا.
ext:dev:uneprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
إلغاء الإيقاف النهائي لإصدارات الإضافة التي تتطابق مع الاستناد إلى الإصدار
يمكن أن تكون إسناد الإصدار إصدارًا واحدًا (مثل 1.0.0) أو مجموعة من الإصدارات (مثل >1.0.0).
إذا لم يتم تقديم مرجع إصدار، سيتم إيقاف جميع إصدارات تلك الإضافة نهائيًا.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
يؤدي هذا الخيار إلى تحميل إصدار جديد من إحدى الإضافات.
ext:dev:usage \
PUBLISHER_ID
تعرض عدد عمليات التثبيت ومقاييس الاستخدام للإضافات التي حمَّلها الناشر.

أوامر الاستضافة

Command الوصف
hosting:disable

إيقاف عرض زيارات "استضافة Firebase" لمشروع Firebase النشط.

بعد تنفيذ هذا الأمر، سيعرض عنوان URL للاستضافة في مشروعك رسالة "Site Not Found" (لم يتم العثور على الموقع الإلكتروني).

إدارة "استضافة المواقع الإلكترونية"
استضافة firebase:sites:create \
SITE_ID

ينشئ موقعًا إلكترونيًا جديدًا للاستضافة في مشروع Firebase النشط باستخدام SITE_ID المحدّدة.

(اختياري) حدِّد تطبيق ويب Firebase حالي لربطه بالموقع الإلكتروني الجديد من خلال تمرير العلامة التالية: --app FIREBASE_APP_ID

استضافة firebase:sites:delete \
SITE_ID

يؤدي هذا الإجراء إلى حذف موقع الاستضافة المحدّد.

تعرض واجهة سطر الأوامر رسالة تأكيد قبل حذف الموقع الإلكتروني.

(اختياري) يمكنك تخطّي رسالة التأكيد من خلال تمرير العلامتَين التاليتَين: -f أو --force

استضافة Firebase:sites:get \
SITE_ID

يسترد معلومات حول موقع الاستضافة المحدد

استضافة firebase:sites:list

يسرد جميع مواقع الاستضافة لمشروع Firebase النشط

إدارة قنوات المعاينة
استضافة Firebase:channel:create \
CHANNEL_ID

ينشئ قناة معاينة جديدة في موقع الاستضافة التلقائي باستخدام واجهة برمجة التطبيقات CHANNEL_ID المحدّدة.

ولا يتم نشر هذا الأمر في القناة.

استضافة Firebase:channel:delete \
CHANNEL_ID

حذف قناة المعاينة المحدّدة

لا يمكنك حذف القناة المباشرة لموقع إلكتروني.

استضافة Firebase:channel:deploy \
CHANNEL_ID

نشر محتوى الاستضافة وإعداداتها في قناة المعاينة المحدّدة

إذا لم تكن قناة المعاينة متاحة بعد، يؤدي هذا الأمر إلى إنشاء القناة في الموقع الإلكتروني المضيف التلقائي قبل النشر على القناة.

استضافة Firebase:channel:list يسرد جميع القنوات (بما في ذلك القناة "المباشرة") في موقع الاستضافة التلقائي.
استضافة Firebase:channel:open \
CHANNEL_ID
يفتح هذا الزر المتصفّح عنوان URL للقناة المحدّدة أو يعرض عنوان URL إذا تعذّر فتحه في متصفّح.
استنساخ النسخة
استضافة Firebase:نسخ \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

ينسخ أحدث إصدار تم نشره على قناة "المصدر" المحددة إلى قناة "الهدف" المحددة.

ويتم نشر هذا الأمر أيضًا في قناة "target" المحددة. إذا لم تكن قناة "target" متوفرة بعد، ينشئ هذا الأمر قناة معاينة جديدة في موقع الاستضافة الإلكتروني "target" قبل نشره على القناة.

استضافة Firebase:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

ينسخ النسخة المحددة إلى قناة "الهدف" المحددة.

ويتم نشر هذا الأمر أيضًا في قناة "target" المحددة. إذا لم تكن قناة "target" متوفرة بعد، ينشئ هذا الأمر قناة معاينة جديدة في موقع الاستضافة الإلكتروني "target" قبل نشره على القناة.

يمكنك العثور على VERSION_ID في لوحة بيانات الاستضافة ضمن "وحدة تحكُّم Firebase".

أوامر قاعدة بيانات الوقت الفعلي

يمكنك إنشاء مثيل "قاعدة بيانات الوقت الفعلي" الأولي والتلقائي في وحدة تحكُّم Firebase أو من خلال استخدام سير العمل firebase init العام أو المسار "firebase init database" المحدَّد.

بعد إنشاء المثيلات، يمكنك إدارتها كما تمّت مناقشتها في المقالة إدارة مثيلات متعددة من قاعدة بيانات الوقت الفعلي.

Command الوصف
database:get يجلب البيانات من قاعدة بيانات المشروع النشط ويعرضها بتنسيق JSON. إتاحة الاستعلام عن البيانات المفهرسة.
database:instances:create تنشئ هذه الدالة مثيل قاعدة بيانات باسم مثيل معيّن. تتيح هذه العلامة الخيار --location لإنشاء قاعدة بيانات في منطقة محدّدة. لمعرفة أسماء المناطق التي تريد استخدامها مع هذا الخيار، يُرجى الاطّلاع على اختيار المواقع الجغرافية لمشروعك. في حال عدم توفّر مثيل قاعدة بيانات للمشروع الحالي، سيُطلب منك تشغيل تدفق firebase init لإنشاء مثيل.
database:instances:list سرد جميع مثيلات قاعدة البيانات لهذا المشروع. تتيح هذه السياسة خيار --location لإدراج قواعد البيانات في منطقة محدّدة. لمعرفة أسماء المناطق التي تريد استخدامها مع هذا الخيار، يُرجى الاطّلاع على اختيار المواقع الجغرافية لمشروعك.
database:profile ينشئ ملفًا شخصيًا للعمليات على قاعدة بيانات المشروع النشط. لمعرفة مزيد من التفاصيل، يمكنك الاطّلاع على أنواع عمليات قاعدة البيانات في الوقت الفعلي.
database:push تدفع البيانات الجديدة إلى قائمة في موقع محدّد في قاعدة بيانات المشروع النشط. يتم الحصول على البيانات من ملف أو STDIN أو وسيطة سطر أوامر.
database:remove لحذف جميع البيانات الموجودة في موقع محدد ضمن قاعدة بيانات المشروع النشط.
database:set لاستبدال جميع البيانات الموجودة في موقع محدد ضمن قاعدة بيانات المشروع النشط. تتلقى البيانات التي يتم إدخالها من ملف أو STDIN أو وسيطة سطر أوامر.
قاعدة البيانات:تحديث إجراء تعديل جزئي في موقع جغرافي محدّد ضمن قاعدة بيانات المشروع النشط يتم الحصول على البيانات من ملف أو STDIN أو وسيطة سطر أوامر.

أوامر "الإعداد عن بُعد"

Command الوصف
remoteconfig:versions:list \
--الحد الأقصى المسموح به: NUMBER_OF_VERSIONS
يسرد أحدث عشر إصدارات من النموذج. حدِّد 0 لعرض جميع النُسخ الحالية، أو يمكنك ضبط خيار --limit اختياريًا للحدّ من عدد الإصدارات التي يتم عرضها.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o، الإخراج FILENAME
يتم الحصول على النموذج حسب الإصدار (القيمة التلقائية إلى أحدث إصدار) وإخراج مجموعات المَعلمات والمَعلمات وأسماء الشروط والإصدارات في جدول. ويمكنك، إذا أردت، كتابة المخرجات إلى ملف محدّد باستخدام السمة -o, FILENAME.
remoteconfig:rollback \
--v، version_number VERSION_NUMBER
--force
يؤدي هذا الإجراء إلى إعادة نموذج "الإعداد عن بُعد" إلى رقم إصدار سابق محدّد أو ضبطه تلقائيًا على الإصدار السابق المباشر (الإصدار الحالي -1). في حال عدم اجتياز --force، سيُطلب منك إدخال نعم/لا قبل متابعة عملية العودة إلى الإصدار السابق.