مرجع Firebase CLI

Firebase CLI ( GitHub ) ابزارهای مختلفی را برای مدیریت، مشاهده و استقرار پروژه‌های Firebase فراهم می‌کند.

قبل از استفاده از Firebase CLI، یک پروژه Firebase راه اندازی کنید .

CLI را راه اندازی یا به روز کنید

Firebase CLI را نصب کنید

می‌توانید Firebase CLI را با استفاده از روشی نصب کنید که با سیستم‌عامل، سطح تجربه و/یا کاربرد شما مطابقت دارد. صرف نظر از نحوه نصب CLI، شما به همان عملکرد و فرمان firebase دسترسی دارید.

Windows macOS Linux

پنجره ها

با استفاده از یکی از گزینه های زیر می توانید Firebase CLI را برای ویندوز نصب کنید:

گزینه شرح توصیه شده برای...
باینری مستقل دانلود باینری مستقل برای CLI. سپس، می‌توانید به فایل اجرایی دسترسی پیدا کنید تا پوسته‌ای را باز کنید که در آن می‌توانید فرمان firebase را اجرا کنید. توسعه دهندگان جدید

توسعه دهندگانی که از Node.js استفاده نمی کنند یا با آن آشنا نیستند
npm از npm (Node Package Manager) برای نصب CLI و فعال کردن فرمان firebase در دسترس جهانی استفاده کنید. توسعه دهندگانی که از Node.js استفاده می کنند

باینری مستقل

برای دانلود و اجرای باینری برای Firebase CLI، مراحل زیر را دنبال کنید:

  1. باینری Firebase CLI را برای ویندوز دانلود کنید.

  2. برای باز کردن پوسته ای که می توانید فرمان firebase را اجرا کنید به باینری دسترسی پیدا کنید.

  3. وارد سیستم شوید و CLI را آزمایش کنید .

npm

برای استفاده از npm (Node Package Manager) برای نصب Firebase CLI، مراحل زیر را دنبال کنید:

  1. Node.js را با استفاده از nvm-windows (Node Version Manager) نصب کنید. نصب Node.js به طور خودکار ابزارهای دستوری npm را نصب می کند.

  2. Firebase CLI را از طریق npm با اجرای دستور زیر نصب کنید:

    npm install -g firebase-tools

    این دستور فرمان firebase در سطح جهانی را فعال می کند.

  3. وارد سیستم شوید و CLI را آزمایش کنید .

macOS یا Linux

می‌توانید Firebase CLI را برای macOS یا Linux با استفاده از یکی از گزینه‌های زیر نصب کنید:

گزینه شرح توصیه شده برای...
اسکریپت نصب خودکار یک فرمان واحد را اجرا کنید که به طور خودکار سیستم عامل شما را شناسایی می کند، آخرین نسخه CLI را دانلود می کند، سپس فرمان firebase در سطح جهانی را فعال می کند. توسعه دهندگان جدید

توسعه دهندگانی که از Node.js استفاده نمی کنند یا با آن آشنا نیستند

استقرار خودکار در یک محیط CI/CD
باینری مستقل دانلود باینری مستقل برای CLI. سپس، می‌توانید باینری را مطابق با گردش کار خود پیکربندی و اجرا کنید. گردش کار کاملاً قابل تنظیم با استفاده از CLI
npm از npm (Node Package Manager) برای نصب CLI و فعال کردن فرمان firebase در دسترس جهانی استفاده کنید. توسعه دهندگانی که از Node.js استفاده می کنند

اسکریپت نصب خودکار

برای نصب Firebase CLI با استفاده از اسکریپت نصب خودکار، مراحل زیر را دنبال کنید:

  1. دستور cURL زیر را اجرا کنید:

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

    این اسکریپت به طور خودکار سیستم عامل شما را شناسایی می کند، آخرین نسخه Firebase CLI را دانلود می کند، سپس دستور firebase در سطح جهانی را فعال می کند.

  2. وارد سیستم شوید و CLI را آزمایش کنید .

برای مثال‌ها و جزئیات بیشتر درباره اسکریپت نصب خودکار، به کد منبع اسکریپت در firebase.tools مراجعه کنید.

باینری مستقل

برای دانلود و اجرای باینری برای Firebase CLI که مخصوص سیستم عامل شما است، این مراحل را دنبال کنید:

  1. باینری Firebase CLI را برای سیستم عامل خود دانلود کنید: macOS | لینوکس

  2. (اختیاری) دستور firebase در دسترس جهانی را تنظیم کنید.

    1. با اجرای chmod +x ./firebase_tools باینری را قابل اجرا کنید.
    2. مسیر باینری را به PATH خود اضافه کنید.
  3. وارد سیستم شوید و CLI را آزمایش کنید .

npm

برای استفاده از npm (Node Package Manager) برای نصب Firebase CLI، مراحل زیر را دنبال کنید:

  1. Node.js را با استفاده از nvm (Node Version Manager) نصب کنید.
    نصب Node.js به طور خودکار ابزارهای دستوری npm را نصب می کند.

  2. Firebase CLI را از طریق npm با اجرای دستور زیر نصب کنید:

    npm install -g firebase-tools

    این دستور فرمان firebase در سطح جهانی را فعال می کند.

  3. وارد سیستم شوید و CLI را آزمایش کنید .

وارد شوید و Firebase CLI را تست کنید

پس از نصب CLI، باید احراز هویت کنید. سپس می توانید با فهرست کردن پروژه های Firebase خود، احراز هویت را تأیید کنید.

  1. با اجرای دستور زیر با استفاده از حساب Google خود وارد Firebase شوید:

    firebase login

    این دستور ماشین محلی شما را به Firebase متصل می کند و به شما امکان دسترسی به پروژه های Firebase را می دهد.

  2. با فهرست کردن پروژه های Firebase خود، بررسی کنید که CLI به درستی نصب شده است و به حساب شما دسترسی دارد. دستور زیر را اجرا کنید:

    firebase projects:list

    لیست نمایش داده شده باید مانند پروژه های Firebase لیست شده در کنسول Firebase باشد.

به آخرین نسخه CLI به روز کنید

به طور کلی، شما می خواهید از به روزترین نسخه Firebase CLI استفاده کنید.

نحوه به روز رسانی نسخه CLI به سیستم عامل شما و نحوه نصب CLI بستگی دارد.

پنجره ها

سیستم عامل مک

  • اسکریپت نصب خودکار : اجرای curl -sL https://firebase.tools | upgrade=true bash
  • باینری مستقل : نسخه جدید را دانلود کنید ، سپس آن را در سیستم خود جایگزین کنید
  • npm : npm install -g firebase-tools اجرا کنید

لینوکس

  • اسکریپت نصب خودکار : اجرای curl -sL https://firebase.tools | upgrade=true bash
  • باینری مستقل : نسخه جدید را دانلود کنید ، سپس آن را در سیستم خود جایگزین کنید
  • npm : npm install -g firebase-tools اجرا کنید

از CLI با سیستم های CI استفاده کنید

Firebase CLI برای تکمیل احراز هویت به مرورگر نیاز دارد، اما CLI کاملاً با CI و سایر محیط‌های بدون هد سازگار است.

  1. در دستگاهی با مرورگر، Firebase CLI را نصب کنید .

  2. فرآیند ورود را با اجرای دستور زیر شروع کنید:

    firebase login:ci
  3. به URL ارائه شده مراجعه کنید، سپس با استفاده از یک حساب Google وارد شوید.

  4. یک نشانه تازه‌سازی جدید چاپ کنید. جلسه فعلی CLI تحت تأثیر قرار نخواهد گرفت.

  5. رمز خروجی را به روشی ایمن اما در دسترس در سیستم CI خود ذخیره کنید.

  6. هنگام اجرای دستورات firebase از این نشانه استفاده کنید. می توانید از یکی از دو گزینه زیر استفاده کنید:

    • گزینه 1: رمز را به عنوان متغیر محیطی FIREBASE_TOKEN ذخیره کنید. سیستم شما به طور خودکار از رمز استفاده می کند.

    • گزینه 2: تمام دستورات firebase را با پرچم --token TOKEN در سیستم CI خود اجرا کنید.
      این ترتیب اولویت برای بارگذاری رمز است: پرچم، متغیر محیطی، پروژه Firebase مورد نظر.

یک پروژه Firebase را راه اندازی کنید

بسیاری از کارهای معمولی که با استفاده از CLI انجام می شوند، مانند استقرار در یک پروژه Firebase، به یک فهرست پروژه نیاز دارند. شما با استفاده از دستور firebase init یک دایرکتوری پروژه ایجاد می کنید. دایرکتوری پروژه معمولاً همان دایرکتوری است که ریشه کنترل منبع شما دارد و پس از اجرای firebase init ، دایرکتوری حاوی یک فایل پیکربندی firebase.json است.

برای مقداردهی اولیه یک پروژه Firebase جدید، دستور زیر را از دایرکتوری برنامه خود اجرا کنید:

firebase init

فرمان firebase init شما را به راه اندازی فهرست راهنمای پروژه و برخی محصولات Firebase می رساند. در طول اولیه سازی پروژه، Firebase CLI از شما می خواهد کارهای زیر را تکمیل کنید:

  • محصولات Firebase مورد نظر را برای راه اندازی در پروژه Firebase خود انتخاب کنید.

    این مرحله از شما می‌خواهد تنظیماتی را برای فایل‌های خاص برای محصولات انتخاب شده تنظیم کنید. برای جزئیات بیشتر در مورد این تنظیمات، به مستندات محصول خاص (به عنوان مثال، میزبانی ) مراجعه کنید. توجه داشته باشید که همیشه می‌توانید firebase init بعداً برای راه‌اندازی محصولات Firebase بیشتری اجرا کنید.

  • یک پروژه Firebase پیش فرض را انتخاب کنید.

    این مرحله دایرکتوری پروژه فعلی را با یک پروژه Firebase مرتبط می کند تا دستورات خاص پروژه (مانند firebase deploy ) در برابر پروژه Firebase مناسب اجرا شوند.

    همچنین می توان چندین پروژه Firebase (مانند یک پروژه مرحله بندی و یک پروژه تولید) را با یک فهرست پروژه مرتبط کرد .

در پایان مقداردهی اولیه، Firebase به طور خودکار دو فایل زیر را در ریشه فهرست برنامه محلی شما ایجاد می کند:

  • یک فایل پیکربندی firebase.json که پیکربندی پروژه شما را فهرست می کند.

  • یک فایل .firebaserc که نام مستعار پروژه شما را ذخیره می کند.

فایل firebase.json

دستور firebase init یک فایل پیکربندی firebase.json در ریشه دایرکتوری پروژه شما ایجاد می کند.

فایل firebase.json برای استقرار دارایی‌ها با Firebase CLI مورد نیاز است زیرا مشخص می‌کند کدام فایل‌ها و تنظیمات از فهرست پروژه شما در پروژه Firebase شما مستقر می‌شوند. از آنجایی که برخی از تنظیمات را می توان در فهرست راهنمای پروژه یا کنسول Firebase تعریف کرد، مطمئن شوید که هرگونه تداخل احتمالی استقرار را حل کرده اید.

شما می توانید اکثر گزینه های میزبانی Firebase را مستقیماً در فایل firebase.json پیکربندی کنید. با این حال، برای سایر سرویس‌های Firebase که می‌توانند با Firebase CLI مستقر شوند ، دستور firebase init فایل‌های خاصی را ایجاد می‌کند که در آن می‌توانید تنظیماتی را برای آن سرویس‌ها تعریف کنید، مانند فایل index.js برای توابع ابری. همچنین می‌توانید قلاب‌های predeploy یا postdeploy را در فایل firebase.json تنظیم کنید.

در صورت انتخاب Firebase Hosting، Cloud Firestore و Cloud Functions برای Firebase (با انتخاب منبع TypeScript و گزینه‌های lint) در زیر نمونه‌ای از فایل firebase.json با تنظیمات پیش‌فرض است.

{
  "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"
        }
      ],

فایل‌های Cloud Functions برای نادیده گرفتن در هنگام استقرار

در زمان استقرار تابع، CLI به طور خودکار فهرستی از فایل‌ها را در فهرست functions برای نادیده گرفتن مشخص می‌کند. این مانع از استقرار فایل‌های اضافی در backend می‌شود که می‌توانند اندازه داده‌های استقرار شما را افزایش دهند.

لیست فایل‌هایی که به‌طور پیش‌فرض نادیده گرفته شده‌اند، با فرمت 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، یکی از دستورات زیر را از داخل فهرست پروژه خود اجرا کنید.

فرمان شرح
firebase use فهرستی از نام مستعار تعریف شده فعلی برای فهرست پروژه خود را مشاهده کنید
firebase use \
PROJECT_ID|ALIAS
همه دستورات را برای اجرا در برابر پروژه مشخص شده Firebase هدایت می کند.
CLI از این پروژه به عنوان "پروژه فعال" فعلی استفاده می کند.
firebase use --clear پروژه فعال را پاک می کند.

اجرای firebase use PROJECT_ID|ALIAS .

firebase use \
--unalias PROJECT_ALIAS
نام مستعار را از فهرست پروژه شما حذف می کند.

می‌توانید با ارسال پرچم --project با هر دستور CLI، آنچه را که به‌عنوان پروژه فعال فعلی استفاده می‌شود لغو کنید. به عنوان مثال: می‌توانید CLI خود را طوری تنظیم کنید که در برابر پروژه Firebase که نام مستعار staging را به آن اختصاص داده‌اید، اجرا شود. اگر می‌خواهید یک فرمان را علیه پروژه Firebase اجرا کنید که نام مستعار prod را به آن اختصاص داده‌اید، می‌توانید برای مثال firebase deploy --project=prod اجرا کنید.

کنترل منبع و نام مستعار پروژه

به طور کلی، شما باید فایل .firebaserc خود را در کنترل منبع بررسی کنید تا به تیم خود اجازه دهید نام مستعار پروژه را به اشتراک بگذارد. با این حال، برای پروژه‌های منبع باز یا قالب‌های شروع، معمولاً نباید فایل .firebaserc خود را بررسی کنید.

اگر پروژه توسعه‌ای دارید که فقط برای استفاده شما است، می‌توانید پرچم --project را با هر دستور ارسال کنید یا firebase use PROJECT_ID بدون اختصاص نام مستعار به پروژه Firebase اجرا کنید.

پروژه Firebase خود را به صورت محلی سرویس و آزمایش کنید

می‌توانید پروژه Firebase خود را قبل از استقرار در تولید، روی URLهای میزبانی محلی مشاهده و آزمایش کنید. اگر فقط می‌خواهید ویژگی‌های انتخابی را آزمایش کنید، می‌توانید از یک لیست جدا شده با کاما در پرچمی در فرمان firebase serve استفاده کنید.

اگر می خواهید یکی از وظایف زیر را انجام دهید، دستور زیر را از ریشه دایرکتوری پروژه محلی خود اجرا کنید:

  • محتوای ثابت برنامه میزبانی شده توسط Firebase خود را مشاهده کنید.
  • از توابع Cloud برای تولید محتوای پویا برای میزبانی Firebase استفاده کنید و می‌خواهید از توابع HTTP تولیدی (استقرار شده) خود برای شبیه‌سازی میزبانی در یک URL محلی استفاده کنید.
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 CLI استقرار کد و دارایی ها را در پروژه Firebase شما مدیریت می کند، از جمله:

  • نسخه های جدید سایت های میزبانی Firebase شما
  • توابع Cloud جدید، به روز شده یا موجود برای 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، از استقرار جزئی استفاده کنید .

تضاد استقرار برای قوانین امنیتی

برای پایگاه داده Realtime Firebase، Cloud Storage برای Firebase، و Cloud Firestore، می توانید قوانین امنیتی را در فهرست راهنمای پروژه محلی خود یا در کنسول Firebase تعریف کنید.

گزینه دیگری برای جلوگیری از تداخل در استقرار، استفاده از استقرار جزئی و فقط تعریف قوانین در کنسول Firebase است.

سهمیه های اعزام

ممکن است (اگرچه بعید است) از سهمیه ای که میزان یا حجم عملیات استقرار Firebase شما را محدود می کند، فراتر رفته باشد. به عنوان مثال، هنگام استقرار تعداد بسیار زیادی از توابع، ممکن است یک پیام خطای HTTP 429 Quota دریافت کنید. برای حل چنین مسائلی، از استقرار جزئی استفاده کنید .

یک استقرار را به عقب برگردانید

می‌توانید با انتخاب اکشن Rollback برای نسخه مورد نظر، یک استقرار میزبانی Firebase را از صفحه میزبانی Firebase پروژه خود بازگردانید.

در حال حاضر امکان بازگرداندن نسخه‌های منتشرشده از قوانین امنیتی برای پایگاه داده بیدرنگ Firebase، فضای ذخیره‌سازی ابری برای Firebase یا Cloud Firestore وجود ندارد.

سرویس های Firebase خاصی را مستقر کنید

اگر فقط می‌خواهید سرویس‌ها یا ویژگی‌های Firebase خاصی را اجرا کنید، می‌توانید از یک لیست جدا شده با کاما در پرچمی در فرمان firebase deploy استفاده کنید. برای مثال، دستور زیر محتوای Firebase Hosting و قوانین امنیتی Cloud Storage را مستقر می کند.

firebase deploy --only hosting,storage

جدول زیر خدمات و ویژگی های موجود برای استقرار جزئی را فهرست می کند. نام های موجود در پرچم ها با کلیدهای فایل پیکربندی firebase.json شما مطابقت دارد.

نحو پرچم سرویس یا ویژگی مستقر شده است
--only hosting محتوای میزبانی Firebase
--only database قوانین پایگاه داده بیدرنگ Firebase
--only storage Cloud 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 CLI از دستورات و گزینه های زیر برای حذف توابع مستقر شده قبلی پشتیبانی می کند:

  • تمام توابعی را که با نام مشخص شده در همه مناطق مطابقت دارند حذف می کند:

    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 متصل کنید تا وظایف پیش از گسترش یا پس از استقرار را انجام دهید. برای مثال، یک اسکریپت predeploy می‌تواند کد TypeScript را به جاوا اسکریپت منتقل کند و یک hook postdeploy می‌تواند مدیران را از استقرار محتوای جدید سایت در میزبانی Firebase مطلع کند.

برای تنظیم قلاب‌های predeploy یا postdeploy، اسکریپت‌های bash را به فایل پیکربندی firebase.json خود اضافه کنید. می‌توانید اسکریپت‌های مختصر را مستقیماً در فایل firebase.json تعریف کنید، یا می‌توانید به فایل‌های دیگری که در فهرست پروژه‌تان هستند ارجاع دهید.

به عنوان مثال، اسکریپت زیر عبارت firebase.json برای یک کار postdeploy است که پس از استقرار موفقیت آمیز به میزبانی Firebase، یک پیام Slack ارسال می کند.

"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 تمام وظایف predeploy و postdeploy تعریف شده در فایل firebase.json شما را فعال می کند. برای اجرای تنها وظایف مرتبط با یک سرویس Firebase خاص، از دستورات استقرار جزئی استفاده کنید .

هر دو قلاب predeploy و postdeploy خروجی استاندارد و جریان های خطای اسکریپت ها را در ترمینال چاپ می کنند. برای موارد شکست به موارد زیر توجه کنید:

  • اگر یک قلاب پیش از راه اندازی مطابق انتظار کامل نشود، استقرار لغو می شود.
  • اگر استقرار به هر دلیلی شکست بخورد، قلاب‌های پس از استقرار فعال نمی‌شوند.

متغیرهای محیطی

در اسکریپت هایی که در قلاب های predeploy و postdeploy اجرا می شوند، متغیرهای محیطی زیر در دسترس هستند:

  • $GCLOUD_PROJECT : شناسه پروژه پروژه فعال
  • $PROJECT_DIR : فهرست اصلی حاوی فایل firebase.json
  • $RESOURCE_DIR : (فقط برای اسکریپت های hosting و functions ) مکان دایرکتوری که حاوی منابع میزبانی یا توابع ابری است که قرار است مستقر شوند.

چندین نمونه پایگاه داده بیدرنگ را مدیریت کنید

یک پروژه Firebase می تواند چندین نمونه پایگاه داده بیدرنگ Firebase داشته باشد. به طور پیش فرض، دستورات CLI با نمونه پایگاه داده پیش فرض شما تعامل دارند.

با این حال، می توانید با استفاده از یک نمونه پایگاه داده غیر پیش فرض تعامل داشته باشید پرچم --instance DATABASE_NAME . دستورات زیر از پرچم --instance پشتیبانی می کنند:

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

مرجع فرمان

دستورات اداری CLI

فرمان شرح
کمک اطلاعات راهنمای مربوط به CLI یا دستورات خاص را نمایش می دهد.
init یک پروژه Firebase جدید را در دایرکتوری فعلی مرتبط می کند و راه اندازی می کند. این دستور یک فایل پیکربندی firebase.json را در دایرکتوری فعلی ایجاد می کند.
وارد شدن CLI را در حساب Firebase شما احراز هویت می کند. نیاز به دسترسی به مرورگر وب دارد.
برای ورود به CLI در محیط های راه دور که اجازه دسترسی به localhost را نمی دهند، از آن استفاده کنید --no-localhost .
ورود به سیستم:ci یک نشانه احراز هویت برای استفاده در محیط های غیر تعاملی ایجاد می کند.
خروج CLI را از حساب Firebase خود خارج کنید.
باز کن مرورگر را به منابع پروژه مربوطه باز می کند.
پروژه ها: لیست تمام پروژه های Firebase را که به آنها دسترسی دارید فهرست می کند.
استفاده کنید پروژه Firebase فعال را برای CLI تنظیم می کند.
نام مستعار پروژه را مدیریت می کند.

دستورات مدیریت پروژه

فرمان شرح
مدیریت پروژه های Firebase
پروژه ها:addfirebase منابع Firebase را به پروژه Google Cloud موجود اضافه می کند.
پروژه ها: ایجاد یک پروژه Google Cloud جدید ایجاد می کند، سپس منابع Firebase را به پروژه جدید اضافه می کند.
پروژه ها: لیست تمام پروژه های Firebase را که به آنها دسترسی دارید فهرست می کند.
مدیریت برنامه های Firebase (iOS، Android، Web)
برنامه ها: ایجاد یک برنامه Firebase جدید در پروژه فعال ایجاد می کند.
برنامه ها: لیست برنامه های Firebase ثبت شده را در پروژه فعال فهرست می کند.
برنامه ها: sdkconfig پیکربندی سرویس‌های Google یک برنامه Firebase را چاپ می‌کند.
راه اندازی: وب منسوخ. در عوض، از apps:sdkconfig استفاده کنید و web به عنوان آرگومان پلتفرم مشخص کنید.
پیکربندی خدمات Google یک برنامه وب Firebase را چاپ می کند.
مدیریت هش های گواهی SHA (فقط اندروید)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
هش گواهی SHA مشخص شده را به برنامه Firebase Android مشخص شده اضافه می کند.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
هش گواهی SHA مشخص شده را از برنامه Firebase Android مشخص شده حذف می کند.
apps:android:sha:list \
FIREBASE_APP_ID
هش های گواهی SHA را برای برنامه Firebase Android مشخص شده فهرست می کند.

استقرار و توسعه محلی

این دستورات به شما امکان می دهد تا سایت میزبانی Firebase خود را مستقر کرده و با آن تعامل داشته باشید.

فرمان شرح
استقرار کد و دارایی ها را از فهرست پروژه شما به پروژه فعال مستقر می کند. برای میزبانی Firebase، یک فایل پیکربندی firebase.json مورد نیاز است.
خدمت یک وب سرور محلی را با پیکربندی میزبانی Firebase شما راه اندازی می کند. برای میزبانی Firebase، یک فایل پیکربندی firebase.json مورد نیاز است.

دستورات توزیع برنامه

فرمان شرح
appdistribution:distribute \
--برنامه FIREBASE_APP_ID
ساخت را در دسترس آزمایش کنندگان قرار می دهد.
appdistribution:testers:add تسترها را به پروژه اضافه می کند.
appdistribution:testers:remove آزمایش کنندگان را از پروژه حذف می کند.

احراز هویت (مدیریت کاربر) دستورات

فرمان شرح
auth: صادرات حساب های کاربری پروژه فعال را به یک فایل JSON یا CSV صادر می کند. برای جزئیات بیشتر، به صفحه auth:import و auth:export مراجعه کنید.
auth: import حساب های کاربری را از یک فایل JSON یا CSV به پروژه فعال وارد می کند. برای جزئیات بیشتر، به صفحه auth:import و auth:export مراجعه کنید.

دستورات Cloud Firestore

فرمان شرح
آتش‌فروشی: مکان‌ها

مکان های موجود برای پایگاه داده 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: پایگاه های داده: حذف DATABASE_ID

یک پایگاه داده را در پروژه Firebase خود حذف کنید.

firestore:indexes

فهرست نمایه های پایگاه داده در پروژه Firebase خود را فهرست کنید.

دستور پرچم زیر را می گیرد:

  • --database DATABASE_ID برای تعیین نام پایگاه داده ای که فهرست های فهرستی برای آن فهرست شود. اگر ارائه نشده باشد، ایندکس ها برای پایگاه داده پیش فرض فهرست می شوند.
firestore:حذف

اسناد موجود در پایگاه داده پروژه فعال را حذف می کند. با استفاده از CLI، می توانید تمام اسناد یک مجموعه را به صورت بازگشتی حذف کنید.

توجه داشته باشید که حذف داده های Cloud Firestore با CLI هزینه های خواندن و حذف را به همراه دارد. برای اطلاعات بیشتر، به درک صورت‌حساب Cloud Firestore مراجعه کنید.

دستور پرچم زیر را می گیرد:

  • --database DATABASE_ID برای تعیین نام پایگاه داده ای که اسناد از آن حذف می شوند. اگر مشخص نشده باشد، اسناد از پایگاه داده پیش فرض حذف می شوند. اختیاری.

توابع ابری برای دستورات Firebase

فرمان شرح
توابع: پیکربندی: کلون محیط پروژه دیگری را در پروژه Firebase فعال کلون می کند.
توابع: پیکربندی: دریافت مقادیر پیکربندی موجود توابع ابری پروژه فعال را بازیابی می کند.
توابع: پیکربندی: تنظیم مقادیر پیکربندی زمان اجرا عملکردهای ابری پروژه فعال را ذخیره می کند.
functions:config:unset مقادیر را از پیکربندی زمان اجرا پروژه فعال حذف می کند.
توابع: ورود گزارش‌ها را از توابع Cloud مستقر می‌خواند.

برای اطلاعات بیشتر، به مستندات پیکربندی محیط مراجعه کنید.

دستورات Crashlytics

فرمان شرح
crashlytics:mappingfile:generateid \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML
شناسه فایل نگاشت منحصر به فرد را در فایل منبع Android (XML) مشخص شده ایجاد می کند.
crashlytics:mappingfile:upload \
--برنامه= FIREBASE_APP_ID \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
یک فایل نگاشت (TXT) سازگار با Proguard را برای این برنامه آپلود می کند و آن را با شناسه فایل نگاشت اعلام شده در فایل منبع Android (XML) مشخص شده مرتبط می کند.
crashlytics:symbols:upload \
--برنامه= FIREBASE_APP_ID \
PATH/TO/SYMBOLS
یک فایل نماد سازگار با Crashlytics برای خرابی های کتابخانه بومی در Android ایجاد می کند و آن را در سرورهای Firebase آپلود می کند.

دستورات افزونه ها

فرمان شرح
داخلی اطلاعاتی در مورد نحوه استفاده از دستورات Firebase Extensions نمایش می دهد.
نمونه های برنامه افزودنی نصب شده در پروژه فعال را فهرست می کند.
ext:configure \
EXTENSION_INSTANCE_ID
مقادیر پارامتر یک نمونه برنامه افزودنی را در مانیفست برنامه افزودنی شما دوباره پیکربندی می کند.
ext:info \
PUBLISHER_ID/EXTENSION_ID
اطلاعات دقیق در مورد یک برنامه افزودنی را چاپ می کند.
ext:install \
PUBLISHER_ID/EXTENSION_ID
نمونه جدیدی از یک برنامه افزودنی را به مانیفست افزونه شما اضافه می کند.
ext:list تمام نمونه های برنامه افزودنی نصب شده در یک پروژه Firebase را فهرست می کند.
شناسه نمونه را برای هر برنامه افزودنی چاپ می کند.
ext:uninstall \
EXTENSION_INSTANCE_ID
یک نمونه برنامه افزودنی را از مانیفست برنامه افزودنی شما حذف می کند.
ext:update \
EXTENSION_INSTANCE_ID
یک نمونه برنامه افزودنی را به آخرین نسخه در مانیفست برنامه افزودنی به روز می کند.
خارج: صادرات همه نمونه های برنامه افزودنی نصب شده را از پروژه شما به مانیفست برنامه افزودنی شما صادر می کند.

دستورات ناشر برنامه های افزودنی

فرمان شرح
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:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
نسخه‌های برنامه افزودنی را که با پیش‌فرض نسخه مطابقت دارند، لغو می‌کند .
یک گزاره نسخه می تواند یک نسخه واحد (مانند 1.0.0 ) یا طیفی از نسخه ها (مانند >1.0.0 ) باشد.
اگر نسخه گزاره ای ارائه نشده باشد، تمام نسخه های آن برنامه افزودنی را لغو می کند.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
نسخه جدیدی از یک برنامه افزودنی را آپلود می کند.
ext:dev:usage \
PUBLISHER_ID
تعداد نصب و معیارهای استفاده را برای برنامه های افزودنی بارگذاری شده توسط ناشر نمایش می دهد.

دستورات میزبانی

فرمان شرح
میزبانی: غیر فعال کردن

سرویس‌دهی به ترافیک میزبانی Firebase را برای پروژه فعال Firebase متوقف می‌کند.

URL میزبانی پروژه شما پس از اجرای این دستور، پیام "سایت یافت نشد" را نمایش می دهد.

مدیریت سایت های میزبانی
firebase hosting:sites:create \
SITE_ID

با استفاده از SITE_ID مشخص شده، یک سایت میزبانی جدید در پروژه فعال Firebase ایجاد می کند

(اختیاری) یک برنامه وب Firebase موجود را برای ارتباط با سایت جدید با عبور پرچم زیر مشخص کنید: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

سایت هاست مشخص شده را حذف می کند

CLI قبل از حذف سایت یک درخواست تایید را نمایش می دهد.

(اختیاری) با عبور از پرچم‌های زیر از درخواست تأیید رد شوید: -f یا --force

firebase hosting:sites:get \
SITE_ID

اطلاعات مربوط به سایت میزبانی مشخص شده را بازیابی می کند

firebase hosting:sites:list

تمام سایت‌های میزبانی پروژه فعال Firebase را فهرست می‌کند

مدیریت کانال های پیش نمایش
firebase hosting:channel:create \
CHANNEL_ID

یک کانال پیش نمایش جدید در سایت میزبانی پیش فرض با استفاده از CHANNEL_ID مشخص شده ایجاد می کند

این دستور در کانال اجرا نمی شود.

firebase hosting:channel:delete \
CHANNEL_ID

کانال پیش نمایش مشخص شده را حذف می کند

شما نمی توانید کانال زنده یک سایت را حذف کنید.

firebase hosting:channel:deploy \
CHANNEL_ID

محتوای میزبانی و پیکربندی شما را در کانال پیش نمایش مشخص شده مستقر می کند

اگر کانال پیش‌نمایش هنوز وجود نداشته باشد، این دستور قبل از استقرار در کانال، کانال را در سایت میزبانی پیش‌فرض ایجاد می‌کند.

firebase hosting:channel:list همه کانال ها (از جمله کانال "زنده") را در سایت میزبانی پیش فرض لیست می کند
firebase hosting:channel:open \
CHANNEL_ID
مرورگر را به URL کانال مشخص شده باز می کند یا اگر باز کردن در مرورگر امکان پذیر نباشد URL را برمی گرداند.
شبیه سازی نسخه
میزبانی firebase:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

کلون ها نسخه اخیراً مستقر در کانال "منبع" مشخص شده به کانال "هدف" مشخص شده

این دستور همچنین به کانال "هدف" مشخص شده اعزام می شود. اگر هنوز کانال "هدف" وجود نداشته باشد ، این دستور قبل از اعزام به کانال ، کانال پیش نمایش جدیدی را در سایت میزبانی "هدف" ایجاد می کند.

میزبان Firebase: کلون \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

نسخه مشخص شده به کانال "هدف" مشخص شده

این دستور همچنین به کانال "هدف" مشخص شده اعزام می شود. اگر هنوز کانال "هدف" وجود نداشته باشد ، این دستور قبل از اعزام به کانال ، کانال پیش نمایش جدیدی را در سایت میزبانی "هدف" ایجاد می کند.

می توانید VERSION_ID در داشبورد میزبان کنسول Firebase پیدا کنید.

دستورات پایگاه داده زمان واقعی

توجه داشته باشید که می توانید نمونه اولیه و پیش فرض پایگاه داده RealTime خود را در کنسول Firebase یا با استفاده از گردش کار عمومی firebase init یا جریان firebase init database ایجاد کنید.

پس از ایجاد نمونه ها ، می توانید آنها را همانطور که در مدیریت چندین نمونه پایگاه داده در زمان واقعی بحث شده است ، مدیریت کنید.

فرمان شرح
پایگاه داده: دریافت کنید داده ها را از پایگاه داده پروژه فعال دریافت می کند و آن را به عنوان JSON نمایش می دهد. از پرس و جو در مورد داده های فهرست بندی شده پشتیبانی می کند.
پایگاه داده: موارد: ایجاد یک نمونه بانک اطلاعاتی با یک نام نمونه مشخص ایجاد می کند. گزینه --location برای ایجاد یک پایگاه داده در یک منطقه مشخص را می پذیرد. برای استفاده از نام های منطقه با این گزینه ، به مکان های انتخابی برای پروژه خود مراجعه کنید. اگر هیچ نمونه بانک اطلاعاتی برای پروژه فعلی وجود ندارد ، از شما خواسته می شود جریان firebase init برای ایجاد یک نمونه اجرا کنید.
پایگاه داده: موارد: لیست تمام نمونه های پایگاه داده را برای این پروژه لیست کنید. گزینه --location را برای لیست پایگاه داده ها در یک منطقه مشخص می پذیرد. برای استفاده نام منطقه با این گزینه ، به مکان های انتخابی برای پروژه خود مراجعه کنید.
پایگاه داده: نمایه نمایه ای از عملیات را در پایگاه داده پروژه فعال ایجاد می کند. برای اطلاعات بیشتر ، به انواع عملکرد پایگاه داده RealTime مراجعه کنید.
پایگاه داده: فشار دهید داده های جدید را به لیستی در یک مکان مشخص در پایگاه داده پروژه فعال سوق می دهد. از یک پرونده ، stdin یا یک آرگومان خط فرمان ورودی می گیرد.
پایگاه داده: حذف تمام داده ها را در یک مکان مشخص در پایگاه داده پروژه فعال حذف می کند.
پایگاه داده: تنظیم تمام داده ها را در یک مکان مشخص در پایگاه داده پروژه فعال جایگزین می کند. از یک پرونده ، stdin یا یک آرگومان خط فرمان ورودی می گیرد.
پایگاه داده: به روز رسانی یک به روزرسانی جزئی را در یک مکان مشخص در پایگاه داده پروژه فعال انجام می دهد. از یک پرونده ، stdin یا یک آرگومان خط فرمان ورودی می گیرد.

دستورات پیکربندی از راه دور

فرمان شرح
RemoteConfig: نسخه ها: لیست \
NUMBER_OF_VERSIONS
لیست جدیدترین ده نسخه از الگوی را لیست می کند. 0 برای بازگشت تمام نسخه های موجود مشخص کنید ، یا به صورت اختیاری گزینه --limit را برای محدود کردن تعداد نسخه های برگشت داده شده عبور دهید.
remoteconfig: دریافت \
-v ، نسخه_number VERSION_NUMBER
--o ، FILENAME خروجی
الگوی را بر اساس نسخه (پیش فرض به آخرین نسخه) دریافت می کند و گروه های پارامتر ، پارامترها و نام ها و نسخه ها را در یک جدول قرار می دهد. به صورت اختیاری ، می توانید خروجی را به یک فایل مشخص با -o, FILENAME بنویسید.
RemoteConfig: Rollback \
-v ، نسخه_number VERSION_NUMBER
--زور
الگوی پیکربندی از راه دور را به شماره نسخه قبلی مشخص شده یا پیش فرض نسخه قبلی فوری (نسخه فعلی -1) برگردانید. مگر در مواردی که --force به تصویب برسد ، قبل از ادامه کار ، Y/N را از بین می برد.