Firebase CLI রেফারেন্স

Firebase সিএলআই ( গিটহাব ) ফায়ারবেস প্রজেক্ট পরিচালনা, দেখা এবং ডেপ্লয় করার জন্য বিভিন্ন ধরনের টুল সরবরাহ করে।

Firebase CLI ব্যবহার করার আগে একটি Firebase প্রজেক্ট তৈরি করে নিন

CLI সেট আপ বা আপডেট করুন

Firebase CLI ইনস্টল করুন

আপনি আপনার অপারেটিং সিস্টেম, অভিজ্ঞতার স্তর এবং/অথবা ব্যবহারের ধরনের সাথে সামঞ্জস্যপূর্ণ একটি পদ্ধতি ব্যবহার করে Firebase সিএলআই ইনস্টল করতে পারেন। আপনি যেভাবে সিএলআই ইনস্টল করুন না কেন, আপনি একই কার্যকারিতা এবং firebase কমান্ডটি ব্যবহার করতে পারবেন।

উইন্ডোজ ম্যাকওএস লিনাক্স

উইন্ডোজ

আপনি নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনো একটি ব্যবহার করে উইন্ডোজের জন্য Firebase সিএলআই ইনস্টল করতে পারেন:

বিকল্প বর্ণনা এর জন্য প্রস্তাবিত...
স্বতন্ত্র বাইনারি CLI-এর জন্য স্বতন্ত্র বাইনারিটি ডাউনলোড করুন। এরপর, আপনি এক্সিকিউটেবলটি অ্যাক্সেস করে একটি শেল খুলতে পারবেন, যেখানে আপনি firebase কমান্ডটি চালাতে পারবেন। নতুন ডেভেলপাররা

যেসব ডেভেলপার Node.js ব্যবহার করেন না বা এর সাথে পরিচিত নন
এনপিএম npm (নোড প্যাকেজ ম্যানেজার) ব্যবহার করে CLI ইনস্টল করুন এবং বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি সক্রিয় করুন। Node.js ব্যবহারকারী ডেভেলপাররা

স্বতন্ত্র বাইনারি

Firebase CLI-এর বাইনারি ডাউনলোড ও রান করতে, এই ধাপগুলো অনুসরণ করুন:

  1. উইন্ডোজের জন্য Firebase সিএলআই বাইনারি ডাউনলোড করুন।

  2. একটি শেল খোলার জন্য বাইনারিটি অ্যাক্সেস করুন, যেখানে আপনি firebase কমান্ডটি চালাতে পারবেন।

  3. লগ ইন করে CLI পরীক্ষা করা চালিয়ে যান।

এনপিএম

npm (নোড প্যাকেজ ম্যানেজার) ব্যবহার করে Firebase CLI ইনস্টল করতে, এই ধাপগুলো অনুসরণ করুন:

  1. nvm-windows (নোড ভার্সন ম্যানেজার) ব্যবহার করে Node.js ইনস্টল করুন। Node.js ইনস্টল করলে npm কমান্ড টুলগুলো স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়।

  2. নিম্নলিখিত কমান্ডটি চালিয়ে npm এর মাধ্যমে Firebase CLI ইনস্টল করুন:

    npm install -g firebase-tools

    এই কমান্ডটি বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি সক্রিয় করে।

  3. লগ ইন করে CLI পরীক্ষা করা চালিয়ে যান।

ম্যাকওএস বা লিনাক্স

আপনি নিচের যেকোনো একটি বিকল্প ব্যবহার করে macOS বা Linux-এর জন্য Firebase CLI ইনস্টল করতে পারেন:

বিকল্প বর্ণনা এর জন্য প্রস্তাবিত...
স্বয়ংক্রিয় ইনস্টল স্ক্রিপ্ট একটিমাত্র কমান্ড চালান যা স্বয়ংক্রিয়ভাবে আপনার অপারেটিং সিস্টেম শনাক্ত করে, সর্বশেষ CLI রিলিজ ডাউনলোড করে এবং তারপর বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি সক্রিয় করে। নতুন ডেভেলপাররা

যেসব ডেভেলপার Node.js ব্যবহার করেন না বা এর সাথে পরিচিত নন

CI/CD পরিবেশে স্বয়ংক্রিয় ডেপ্লয়
স্বতন্ত্র বাইনারি CLI-এর জন্য স্বতন্ত্র বাইনারিটি ডাউনলোড করুন। তারপর, আপনি আপনার কাজের ধারা অনুযায়ী বাইনারিটি কনফিগার ও রান করতে পারবেন। CLI ব্যবহার করে সম্পূর্ণরূপে কাস্টমাইজযোগ্য ওয়ার্কফ্লো
এনপিএম npm (নোড প্যাকেজ ম্যানেজার) ব্যবহার করে 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 | Linux

  2. (ঐচ্ছিক) বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি সেট আপ করুন।

    1. chmod +x ./firebase_tools কমান্ডটি চালিয়ে বাইনারিটিকে এক্সিকিউটেবল করুন।
    2. বাইনারিটির পাথ আপনার PATH-এ যোগ করুন।
  3. লগ ইন করে CLI পরীক্ষা করা চালিয়ে যান।

এনপিএম

npm (নোড প্যাকেজ ম্যানেজার) ব্যবহার করে Firebase CLI ইনস্টল করতে, এই ধাপগুলো অনুসরণ করুন:

  1. nvm (নোড ভার্সন ম্যানেজার) ব্যবহার করে Node.js ইনস্টল করুন।
    Node.js ইনস্টল করলে স্বয়ংক্রিয়ভাবে npm কমান্ড টুলগুলোও ইনস্টল হয়ে যায়।

  2. নিম্নলিখিত কমান্ডটি চালিয়ে npm এর মাধ্যমে Firebase CLI ইনস্টল করুন:

    npm install -g firebase-tools

    এই কমান্ডটি বিশ্বব্যাপী উপলব্ধ firebase কমান্ডটি সক্রিয় করে।

  3. লগ ইন করে CLI পরীক্ষা করা চালিয়ে যান।

লগ ইন করুন এবং Firebase CLI পরীক্ষা করুন

CLI ইনস্টল করার পর আপনাকে অবশ্যই প্রমাণীকরণ করতে হবে। তারপর আপনার Firebase প্রজেক্টগুলো তালিকাভুক্ত করে আপনি প্রমাণীকরণ নিশ্চিত করতে পারবেন।

  1. নিম্নলিখিত কমান্ডটি চালিয়ে আপনার গুগল অ্যাকাউন্ট ব্যবহার করে ফায়ারবেসে লগ ইন করুন:

    firebase login

    এই কমান্ডটি আপনার লোকাল মেশিনকে ফায়ারবেসের সাথে সংযুক্ত করে এবং আপনাকে আপনার ফায়ারবেস প্রজেক্টগুলোতে অ্যাক্সেস প্রদান করে।

  2. আপনার Firebase প্রজেক্টগুলো তালিকাভুক্ত করে পরীক্ষা করুন যে CLI সঠিকভাবে ইনস্টল করা আছে এবং আপনার অ্যাকাউন্ট অ্যাক্সেস করতে পারছে। নিম্নলিখিত কমান্ডটি চালান:

    firebase projects:list

    প্রদর্শিত তালিকাটি Firebase কনসোলে তালিকাভুক্ত ফায়ারবেস প্রজেক্টগুলোর মতোই হওয়া উচিত।

সর্বশেষ CLI সংস্করণে আপডেট করুন

সাধারণত, আপনার Firebase সিএলআই-এর সবচেয়ে হালনাগাদ সংস্করণটি ব্যবহার করা উচিত।

আপনি কীভাবে 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 চালান

Firebase CLI আনইনস্টল করুন

আপনি কীভাবে CLI আনইনস্টল করবেন তা আপনার অপারেটিং সিস্টেম এবং আপনি কীভাবে CLI ইনস্টল করেছেন তার উপর নির্ভর করে।

উইন্ডোজ

  • স্বতন্ত্র বাইনারি : আপনার ডাউনলোড করা firebase.exe বাইনারিটি মুছে ফেলুন।
  • npm : npm uninstall -g firebase-tools চালান

ম্যাকওএস

  • স্বয়ংক্রিয় ইনস্টল স্ক্রিপ্ট : curl -sL https://firebase.tools | uninstall=true bash চালান

  • স্বতন্ত্র বাইনারি : আপনার ডাউনলোড করা firebase বাইনারিটি মুছে ফেলুন। যদি আপনি এটির অবস্থান আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলে যোগ করে থাকেন, তবে অবশ্যই তা সরিয়ে ফেলুন।

  • npm : npm uninstall -g firebase-tools চালান

লিনাক্স

  • স্বয়ংক্রিয় ইনস্টল স্ক্রিপ্ট : curl -sL https://firebase.tools | uninstall=true bash চালান

  • স্বতন্ত্র বাইনারি : আপনার ডাউনলোড করা firebase বাইনারিটি মুছে ফেলুন। যদি আপনি এটির অবস্থান আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলে যোগ করে থাকেন, তবে অবশ্যই তা সরিয়ে ফেলুন।

  • npm : npm uninstall -g firebase-tools চালান

CI সিস্টেমের সাথে CLI ব্যবহার করুন

CI সিস্টেমের সাথে CLI ব্যবহার করার সময় আমরা আপনাকে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে প্রমাণীকরণের পরামর্শ দিই।

(সুপারিশকৃত) অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করুন

অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল সেট করা থাকলে Firebase CLI তা শনাক্ত করে ব্যবহার করবে। CI এবং অন্যান্য হেডলেস পরিবেশে CLI-কে অথেন্টিকেট করার সবচেয়ে সহজ উপায় হলো অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল সেট আপ করা

(লেগ্যাসি) FIREBASE_TOKEN ব্যবহার করুন

বিকল্পভাবে, আপনি FIREBASE_TOKEN ব্যবহার করে প্রমাণীকরণ করতে পারেন। এটি অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল-এর চেয়ে কম সুরক্ষিত এবং এখন আর এর সুপারিশ করা হয় না।

  1. ব্রাউজারযুক্ত কোনো মেশিনে Firebase CLI ইনস্টল করুন

  2. নিম্নলিখিত কমান্ডটি চালিয়ে সাইন-ইন প্রক্রিয়া শুরু করুন:

    firebase login:ci
  3. প্রদত্ত ইউআরএল-এ যান, তারপর একটি গুগল অ্যাকাউন্ট ব্যবহার করে লগ ইন করুন।

  4. একটি নতুন রিফ্রেশ টোকেন প্রিন্ট করুন। বর্তমান CLI সেশনটি প্রভাবিত হবে না।

  5. আপনার CI সিস্টেমে আউটপুট টোকেনটি একটি সুরক্ষিত কিন্তু অ্যাক্সেসযোগ্য উপায়ে সংরক্ষণ করুন।

  6. firebase কমান্ড চালানোর সময় এই টোকেনটি ব্যবহার করুন। আপনি নিম্নলিখিত দুটি বিকল্পের যেকোনো একটি ব্যবহার করতে পারেন:

    • বিকল্প ১: টোকেনটি FIREBASE_TOKEN এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সংরক্ষণ করুন। আপনার সিস্টেম স্বয়ংক্রিয়ভাবে টোকেনটি ব্যবহার করবে।

    • বিকল্প ২: আপনার CI সিস্টেমে সমস্ত firebase কমান্ড --token TOKEN ফ্ল্যাগ সহ চালান।
      টোকেন লোড করার ক্ষেত্রে অগ্রাধিকারের ক্রমটি হলো: ফ্ল্যাগ, এনভায়রনমেন্ট ভেরিয়েবল, কাঙ্ক্ষিত ফায়ারবেস প্রজেক্ট।

একটি ফায়ারবেস প্রজেক্ট শুরু করুন

CLI ব্যবহার করে করা অনেক সাধারণ কাজ, যেমন একটি ফায়ারবেস প্রজেক্টে ডিপ্লয় করা, একটি প্রজেক্ট ডিরেক্টরির প্রয়োজন হয়। আপনি firebase init কমান্ড ব্যবহার করে একটি প্রজেক্ট ডিরেক্টরি তৈরি করেন। একটি প্রজেক্ট ডিরেক্টরি সাধারণত আপনার সোর্স কন্ট্রোল রুটের মতোই হয়, এবং firebase init চালানোর পরে, সেই ডিরেক্টরিতে একটি firebase.json কনফিগারেশন ফাইল থাকে।

একটি নতুন Firebase প্রজেক্ট শুরু করতে, আপনার অ্যাপের ডিরেক্টরির ভেতর থেকে নিম্নলিখিত কমান্ডটি চালান:

firebase init

firebase init কমান্ডটি আপনাকে আপনার প্রজেক্ট ডিরেক্টরি এবং কিছু ফায়ারবেস প্রোডাক্ট সেট আপ করার প্রক্রিয়াটি ধাপে ধাপে দেখিয়ে দেয়। প্রজেক্ট ইনিশিয়ালাইজেশনের সময়, Firebase সিএলআই আপনাকে নিম্নলিখিত কাজগুলো সম্পন্ন করতে বলে:

  • একটি ডিফল্ট ফায়ারবেস প্রজেক্ট নির্বাচন করুন।

    এই ধাপে বর্তমান প্রজেক্ট ডিরেক্টরিকে একটি ফায়ারবেস প্রজেক্টের সাথে যুক্ত করা হয়, যাতে প্রজেক্ট-নির্দিষ্ট কমান্ডগুলো (যেমন firebase deploy ) সঠিক ফায়ারবেস প্রজেক্টে রান হয়।

    এছাড়াও একাধিক ফায়ারবেস প্রজেক্ট (যেমন একটি স্টেজিং প্রজেক্ট এবং একটি প্রোডাকশন প্রজেক্ট) একই প্রজেক্ট ডিরেক্টরির সাথে যুক্ত করা সম্ভব।

  • আপনার ফায়ারবেস প্রজেক্টে সেট আপ করার জন্য ফায়ারবেস প্রোডাক্টগুলো নির্বাচন করুন।

    এই ধাপে আপনাকে নির্বাচিত প্রোডাক্ট বা ফিচারগুলোর জন্য নির্দিষ্ট ফাইলগুলোর কনফিগারেশন সেট করতে বলা হবে। এই কনফিগারেশনগুলো সম্পর্কে আরও বিস্তারিত জানতে, নির্দিষ্ট প্রোডাক্টের ডকুমেন্টেশন দেখুন (যেমন, Hosting বা Authentication )। মনে রাখবেন, আপনি পরবর্তীতে আরও ফায়ারবেস প্রোডাক্ট সেট আপ করার জন্য যেকোনো সময় firebase init চালাতে পারেন।

প্রারম্ভিককরণের শেষে, Firebase স্বয়ংক্রিয়ভাবে আপনার স্থানীয় অ্যাপ ডিরেক্টরির রুটে নিম্নলিখিত দুটি ফাইল তৈরি করে:

  • firebase.json কনফিগারেশন ফাইল, যেখানে আপনার প্রোজেক্টের কনফিগারেশন তালিকাভুক্ত থাকে।

  • একটি .firebaserc ফাইল যা আপনার প্রোজেক্টের অ্যালিয়াসগুলো সংরক্ষণ করে।

firebase.json ফাইল

firebase init কমান্ডটি আপনার প্রজেক্ট ডিরেক্টরির রুটে একটি firebase.json কনফিগারেশন ফাইল তৈরি করে।

Firebase CLI ব্যবহার করে অ্যাসেট ডেপ্লয় করার জন্য firebase.json ফাইলটি প্রয়োজন, কারণ এটি নির্দিষ্ট করে দেয় যে আপনার প্রজেক্ট ডিরেক্টরি থেকে কোন ফাইল এবং সেটিংস আপনার Firebase প্রজেক্টে ডেপ্লয় করা হবে (যেমন Hosting সেটিংস, Authentication প্রোভাইডার কনফিগারেশন, সিকিউরিটি রুলস এবং Cloud Functions কনফিগারেশন)। যেহেতু কিছু সেটিংস আপনার প্রজেক্ট ডিরেক্টরি অথবা Firebase কনসোল উভয় স্থানেই নির্ধারণ করা যায়, তাই ডেপ্লয়মেন্ট সংক্রান্ত যেকোনো সম্ভাব্য দ্বন্দ্ব সমাধান করে নেওয়া নিশ্চিত করুন।

আপনি বেশিরভাগ Firebase Hosting অপশন সরাসরি firebase.json ফাইলে কনফিগার করতে পারেন। তবে, অন্যান্য ফায়ারবেস সার্ভিসগুলোর জন্য যেগুলো Firebase CLI দিয়ে ডেপ্লয় করা যায় , firebase init কমান্ডটি নির্দিষ্ট ফাইল তৈরি করে যেখানে আপনি সেই সার্ভিসগুলোর জন্য সেটিংস নির্ধারণ করতে পারেন, যেমন Cloud Functions জন্য একটি index.js ফাইল। এছাড়াও আপনি firebase.json ফাইলে প্রি-ডেপ্লয় বা পোস্ট-ডেপ্লয় হুক সেট আপ করতে পারেন।

নিম্নলিখিত firebase.json ফাইলটি অনেক Firebase পরিষেবার কনফিগারেশন বিকল্পগুলি প্রদর্শনকারী একটি বিশদ উদাহরণ। এটি মাল্টি-কোডবেস Cloud Functions , Local Emulator Suite সেটআপ এবং একটি Remote Config টেমপ্লেটের মতো বৈশিষ্ট্যগুলিও প্রদর্শন করে। মনে রাখবেন যে, যেকোনো নির্দিষ্ট প্রকল্পের firebase.json ফাইলে শুধুমাত্র সেই প্রকল্পের জন্য সেট আপ করা Firebase পরিষেবাগুলির কনফিগারেশন থাকবে (উদাহরণস্বরূপ, শুধুমাত্র Firebase Hosting এবং Cloud Functions )। $schema কী যোগ করলে অনেক কোড এডিটরে ভ্যালিডেশন এবং অটোকমপ্লিশন সক্ষম হয়।

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "auth": {
        "providers": {
          "anonymous": true,
          "emailPassword": true,
          "googleSignIn": {
            "oAuthBrandDisplayName": "My App",
            "supportEmail": "support@myapp.com"
          }
        }
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

ডিফল্টরূপে firebase.json ব্যবহৃত হলেও, আপনি --config PATH ফ্ল্যাগটি ব্যবহার করে একটি বিকল্প কনফিগারেশন ফাইল নির্দিষ্ট করতে পারেন।

একাধিক Cloud Firestore ডেটাবেসের জন্য কনফিগারেশন

যখন আপনি firebase init চালাবেন, তখন আপনার firebase.json ফাইলে আপনার প্রোজেক্টের ডিফল্ট ডেটাবেসের সাথে সম্পর্কিত একটিমাত্র firestore কী থাকবে, যেমনটি পূর্ববর্তী উদাহরণে দেখানো হয়েছে।

আপনার প্রজেক্টে একাধিক Cloud Firestore ডেটাবেস থাকলে, প্রতিটি ডেটাবেসের সাথে আলাদা Cloud Firestore Security Rules এবং ডেটাবেস ইনডেক্স সোর্স ফাইল যুক্ত করতে আপনার firebase.json ফাইলটি সম্পাদনা করুন। ফাইলটি একটি 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 ডিরেক্টরিতে উপেক্ষা করার জন্য ফাইলগুলির একটি তালিকা নির্দিষ্ট করে দেয়। এর ফলে ব্যাকএন্ডে এমন অপ্রয়োজনীয় ফাইল ডেপ্লয় হওয়া থেকে বিরত থাকা যায়, যা আপনার ডেপ্লয়মেন্টের ডেটার আকার বাড়িয়ে দিতে পারে।

ডিফল্টরূপে উপেক্ষা করা ফাইলগুলির তালিকা, যা JSON ফরম্যাটে দেখানো হয়েছে, তা হলো:

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

আপনি যদি firebase.jsonignore এর জন্য আপনার নিজস্ব কাস্টম মান যোগ করেন, তাহলে নিশ্চিত করুন যে আপনি পূর্ববর্তী তালিকায় দেখানো ফাইলগুলির তালিকাটি রেখেছেন (অথবা অনুপস্থিত থাকলে যোগ করেছেন)।

প্রকল্পের বিকল্প নামগুলি পরিচালনা করুন

আপনি একই প্রজেক্ট ডিরেক্টরির সাথে একাধিক ফায়ারবেস প্রজেক্ট যুক্ত করতে পারেন। উদাহরণস্বরূপ, আপনি স্টেজিংয়ের জন্য একটি ফায়ারবেস প্রজেক্ট এবং প্রোডাকশনের জন্য অন্যটি ব্যবহার করতে চাইতে পারেন। ভিন্ন ভিন্ন প্রজেক্ট এনভায়রনমেন্ট ব্যবহার করে, আপনি প্রোডাকশনে ডেপ্লয় করার আগে পরিবর্তনগুলো যাচাই করে নিতে পারেন। firebase use কমান্ডটি আপনাকে অ্যালিয়াসগুলোর মধ্যে পরিবর্তন করার পাশাপাশি নতুন অ্যালিয়াস তৈরি করতেও সাহায্য করে।

একটি প্রজেক্ট উপনাম যোগ করুন

প্রজেক্ট ইনিশিয়ালাইজেশনের সময় আপনি যখন একটি ফায়ারবেস প্রজেক্ট নির্বাচন করেন, তখন প্রজেক্টটিকে স্বয়ংক্রিয়ভাবে ' default ' অ্যালিয়াসটি দেওয়া হয়। তবে, একই প্রজেক্ট ডিরেক্টরি ব্যবহার করে অন্য কোনো ফায়ারবেস প্রজেক্টে প্রজেক্ট-নির্দিষ্ট কমান্ড চালানোর অনুমতি দিতে, আপনার প্রজেক্ট ডিরেক্টরির ভেতর থেকে নিম্নলিখিত কমান্ডটি চালান:

firebase use --add

এই কমান্ডটি আপনাকে অন্য একটি ফায়ারবেস প্রজেক্ট নির্বাচন করতে এবং সেটিকে অ্যালিয়াস হিসেবে নির্ধারণ করতে বলে। অ্যালিয়াস নির্ধারণগুলো আপনার প্রজেক্ট ডিরেক্টরির ভেতরে একটি .firebaserc ফাইলে লেখা হয়।

প্রকল্পের বিকল্প নাম ব্যবহার করুন

নির্ধারিত ফায়ারবেস প্রজেক্ট অ্যালিয়াস ব্যবহার করতে, আপনার প্রজেক্ট ডিরেক্টরির ভেতর থেকে নিচের যেকোনো একটি কমান্ড চালান।

আদেশ বর্ণনা
firebase use আপনার প্রজেক্ট ডিরেক্টরির জন্য সংজ্ঞায়িত উপনামগুলির তালিকা দেখুন
firebase use \
PROJECT_ID|ALIAS
সমস্ত কমান্ড নির্দিষ্ট ফায়ারবেস প্রজেক্টের বিপরীতে চালানোর নির্দেশ দেয়।
CLI এই প্রজেক্টটিকে 'সক্রিয় প্রজেক্ট' হিসেবে ব্যবহার করে।
firebase use --clear সক্রিয় প্রকল্পটি মুছে ফেলে।

অন্যান্য CLI কমান্ড চালানোর আগে একটি নতুন সক্রিয় প্রজেক্ট সেট করতে firebase use PROJECT_ID|ALIAS চালান।

firebase use \
--unalias PROJECT_ALIAS
আপনার প্রজেক্ট ডিরেক্টরি থেকে একটি অ্যালিয়াস মুছে ফেলে।

যেকোনো CLI কমান্ডের সাথে --project ফ্ল্যাগটি পাস করে আপনি সক্রিয় প্রজেক্ট হিসেবে ব্যবহৃত হওয়াকে ওভাররাইড করতে পারেন। উদাহরণস্বরূপ: আপনি আপনার CLI-কে এমন একটি Firebase প্রজেক্টের বিরুদ্ধে চালানোর জন্য সেট করতে পারেন, যেটিকে আপনি staging অ্যালিয়াস দিয়েছেন। যদি আপনি সেই Firebase প্রজেক্টের বিরুদ্ধে একটিমাত্র কমান্ড চালাতে চান যেটিকে আপনি prod অ্যালিয়াস দিয়েছেন, তাহলে আপনি চালাতে পারেন, যেমন, firebase deploy --project=prod

উৎস নিয়ন্ত্রণ এবং প্রকল্পের বিকল্প নাম

সাধারণত, আপনার টিমকে প্রোজেক্ট অ্যালিয়াস শেয়ার করার সুযোগ দিতে আপনার .firebaserc ফাইলটি সোর্স কন্ট্রোলে চেক ইন করা উচিত। তবে, ওপেন সোর্স প্রোজেক্ট বা স্টার্টার টেমপ্লেটের ক্ষেত্রে সাধারণত আপনার .firebaserc ফাইলটি চেক ইন করা উচিত নয়।

আপনার যদি শুধুমাত্র আপনার ব্যবহারের জন্য কোনো ডেভেলপমেন্ট প্রজেক্ট থাকে, তাহলে আপনি প্রতিটি কমান্ডের সাথে --project ফ্ল্যাগটি পাস করতে পারেন অথবা ফায়ারবেস প্রজেক্টে কোনো অ্যালিয়াস নির্ধারণ না করেই firebase use PROJECT_ID চালাতে পারেন।

আপনার ফায়ারবেস প্রজেক্ট স্থানীয়ভাবে পরিবেশন ও পরীক্ষা করুন

প্রোডাকশনে ডেপ্লয় করার আগে আপনি আপনার ফায়ারবেস প্রজেক্টটি স্থানীয়ভাবে হোস্ট করা ইউআরএল-এ দেখতে ও পরীক্ষা করতে পারেন। যদি আপনি শুধু নির্দিষ্ট কিছু ফিচার পরীক্ষা করতে চান, তাহলে firebase serve কমান্ডের ফ্ল্যাগে কমা দিয়ে আলাদা করা একটি তালিকা ব্যবহার করতে পারেন।

আপনি যদি নিম্নলিখিত কাজগুলোর মধ্যে কোনো একটি করতে চান, তাহলে আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালান:

  • আপনার ফায়ারবেস-হোস্টেড অ্যাপের স্ট্যাটিক কন্টেন্ট দেখুন।
  • Firebase Hosting জন্য ডায়নামিক কন্টেন্ট তৈরি করতে Cloud Functions ব্যবহার করুন এবং একটি লোকাল ইউআরএল-এ Hosting অনুকরণ করতে আপনার প্রোডাকশন (ডিপ্লয় করা) HTTP ফাংশনগুলো ব্যবহার করতে চান।
firebase serve --only hosting

স্থানীয় HTTP ফাংশন ব্যবহার করে আপনার প্রজেক্টটি অনুকরণ করুন

স্থানীয় HTTP ফাংশন ব্যবহার করে আপনার প্রজেক্ট অনুকরণ করতে, আপনার প্রজেক্ট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডগুলোর যেকোনো একটি চালান।

  • স্থানীয় ইউআরএল-এ পরীক্ষার জন্য এইচটিটিপি ফাংশন ও হোস্টিং অনুকরণ করতে, নিচের কমান্ডগুলোর যেকোনো একটি ব্যবহার করুন:

    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 CLI আপনার Firebase প্রোজেক্টে কোড এবং অ্যাসেট ডেপ্লয়মেন্ট পরিচালনা করে, যার মধ্যে অন্তর্ভুক্ত রয়েছে:

  • আপনার Firebase Hosting সাইটগুলির নতুন রিলিজ
  • Cloud Functions for Firebase
  • Firebase Data Connect জন্য নতুন বা হালনাগাদ করা স্কিমা এবং কানেক্টর
  • Firebase Realtime Database জন্য Security Rules
  • Cloud Storage for Firebase জন্য Security Rules
  • Cloud Firestore জন্য Security Rules
  • Cloud Firestore জন্য সূচক
  • Authentication জন্য কনফিগারেশন

ফায়ারবেস প্রজেক্টে ডিপ্লয় করতে, আপনার প্রজেক্ট ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালান:

firebase deploy

আপনি চাইলে আপনার প্রতিটি ডেপ্লয়মেন্টে একটি মন্তব্য যোগ করতে পারেন। এই মন্তব্যটি আপনার প্রোজেক্টের Firebase Hosting পেজে অন্যান্য ডেপ্লয়মেন্ট তথ্যের সাথে প্রদর্শিত হবে। উদাহরণস্বরূপ:

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

firebase deploy কমান্ড ব্যবহার করার সময় নিম্নলিখিত বিষয়গুলো সম্পর্কে সচেতন থাকুন:

  • প্রজেক্ট ডিরেক্টরি থেকে রিসোর্স ডেপ্লয় করতে হলে, সেই ডিরেক্টরিতে অবশ্যই একটি firebase.json ফাইল থাকতে হবে। ` firebase init কমান্ডের মাধ্যমে এই ফাইলটি আপনার জন্য স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।

  • ডিফল্টরূপে, firebase deploy আপনার প্রজেক্ট ডিরেক্টরিতে থাকা সমস্ত ডেপ্লয়যোগ্য রিসোর্সের জন্য একটি রিলিজ তৈরি করে। নির্দিষ্ট ফায়ারবেস সার্ভিস বা ফিচার ডেপ্লয় করতে, `পার্শিয়াল ডেপ্লয়মেন্ট` ব্যবহার করুন

নির্দিষ্ট ফায়ারবেস পরিষেবাগুলি স্থাপন করুন

আপনি যদি শুধু নির্দিষ্ট Firebase পরিষেবা বা বৈশিষ্ট্যগুলি স্থাপন করতে চান, তাহলে firebase deploy কমান্ডে একটি ফ্ল্যাগের মধ্যে কমা দিয়ে আলাদা করা একটি তালিকা ব্যবহার করতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি Firebase Hosting কন্টেন্ট এবং Cloud Storage Security Rules স্থাপন করে।

firebase deploy --only hosting,storage

নিম্নলিখিত সারণীতে আংশিক ডেপ্লয়মেন্টের জন্য উপলব্ধ পরিষেবা এবং বৈশিষ্ট্যগুলির তালিকা দেওয়া হয়েছে। ফ্ল্যাগগুলিতে থাকা নামগুলি আপনার firebase.json কনফিগারেশন ফাইলের কী-গুলির সাথে সঙ্গতিপূর্ণ।

ফ্ল্যাগ সিনট্যাক্স পরিষেবা বা বৈশিষ্ট্য স্থাপন করা হয়েছে
--only auth Authentication প্রদানকারী কনফিগারেশন
--only database Firebase Realtime Database Security Rules
--only dataconnect Firebase Data Connect স্কিমা এবং সংযোগকারী
--only firestore কনফিগার করা সমস্ত ডেটাবেসের জন্য Cloud Firestore Security Rules এবং সূচক
--only functions Cloud Functions for Firebase
--only hosting Firebase Hosting কন্টেন্ট
--only storage ফায়ারবেস Security Rules Cloud Storage for Firebase

Security Rules জন্য স্থাপনা দ্বন্দ্ব

Firebase Realtime Database , Cloud Storage for Firebase , এবং Cloud Firestore জন্য, আপনি আপনার স্থানীয় প্রজেক্ট ডিরেক্টরিতে অথবা Firebase কনসোলে Security Rules নির্ধারণ করতে পারেন।

ডিপ্লয়মেন্ট দ্বন্দ্ব এড়ানোর আরেকটি উপায় হলো পার্শিয়াল ডিপ্লয়মেন্ট ব্যবহার করা এবং শুধুমাত্র Firebase কনসোলে Security Rules নির্ধারণ করা।

প্রিডিপ্লয় এবং পোস্টডিপ্লয় স্ক্রিপ্টেড টাস্ক সেট আপ করুন

আপনি প্রি-ডিপ্লয় বা পোস্ট-ডিপ্লয় টাস্ক সম্পাদন করার জন্য firebase deploy কমান্ডের সাথে শেল স্ক্রিপ্ট সংযুক্ত করতে পারেন। উদাহরণস্বরূপ, একটি প্রি-ডিপ্লয় স্ক্রিপ্ট টাইপস্ক্রিপ্ট কোডকে জাভাস্ক্রিপ্টে ট্রান্সপাইল করতে পারে, এবং একটি পোস্ট-ডিপ্লয় হুক Firebase Hosting এ নতুন সাইট কন্টেন্ট ডিপ্লয় হওয়ার বিষয়ে অ্যাডমিনিস্ট্রেটরদের অবহিত করতে পারে।

প্রিডিপ্লয় বা পোস্টডিপ্লয় হুক সেট আপ করতে, আপনার firebase.json কনফিগারেশন ফাইলে ব্যাশ স্ক্রিপ্ট যোগ করুন। আপনি সরাসরি firebase.json ফাইলে সংক্ষিপ্ত স্ক্রিপ্ট সংজ্ঞায়িত করতে পারেন, অথবা আপনার প্রজেক্ট ডিরেক্টরিতে থাকা অন্যান্য ফাইল রেফারেন্স করতে পারেন।

উদাহরণস্বরূপ, নিম্নলিখিত স্ক্রিপ্টটি একটি পোস্টডিপ্লয় টাস্কের firebase.json এক্সপ্রেশন, যা Firebase Hosting এ সফলভাবে ডিপ্লয়মেন্ট সম্পন্ন হলে একটি স্ল্যাক মেসেজ পাঠায়।

"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 ফাইলে সংজ্ঞায়িত সমস্ত প্রিডিপ্লয় এবং পোস্টডিপ্লয় টাস্ক ট্রিগার হয়। শুধুমাত্র একটি নির্দিষ্ট ফায়ারবেস সার্ভিসের সাথে যুক্ত টাস্কগুলো চালানোর জন্য, পার্শিয়াল ডিপ্লয়মেন্ট কমান্ড ব্যবহার করুন

predeploy এবং postdeploy উভয় হুকই স্ক্রিপ্টগুলোর স্ট্যান্ডার্ড আউটপুট এবং এরর স্ট্রিম টার্মিনালে প্রিন্ট করে। ব্যর্থতার ক্ষেত্রে, নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:

  • যদি কোনো প্রিডিপ্লয় হুক প্রত্যাশিতভাবে সম্পন্ন হতে ব্যর্থ হয়, তাহলে ডিপ্লয়মেন্ট বাতিল হয়ে যায়।
  • কোনো কারণে ডেপ্লয়মেন্ট ব্যর্থ হলে, পোস্টডেপ্লয় হুকগুলো ট্রিগার হয় না।

পরিবেশগত পরিবর্তনশীল

প্রিডিপ্লয় এবং পোস্টডিপ্লয় হুকগুলিতে চলমান স্ক্রিপ্টগুলির মধ্যে নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবলগুলি উপলব্ধ থাকে:

  • $GCLOUD_PROJECT : সক্রিয় প্রকল্পের প্রজেক্ট আইডি
  • $PROJECT_DIR : মূল ডিরেক্টরি যেখানে firebase.json ফাইলটি রয়েছে
  • $RESOURCE_DIR : (শুধুমাত্র hosting এবং functions স্ক্রিপ্টের জন্য) যে ডিরেক্টরিতে স্থাপনযোগ্য Hosting বা Cloud Functions রিসোর্সগুলো থাকে, তার অবস্থান।

মোতায়েন কোটা

এমনটা হতে পারে (যদিও এর সম্ভাবনা কম) যে আপনি আপনার Firebase ডেপ্লয়মেন্ট অপারেশনের হার বা পরিমাণ সীমিত করে রাখা কোটা অতিক্রম করে ফেলতে পারেন। উদাহরণস্বরূপ, খুব বেশি সংখ্যক ফাংশন ডেপ্লয় করার সময়, আপনি একটি HTTP 429 Quota এরর মেসেজ পেতে পারেন। এই ধরনের সমস্যা সমাধানের জন্য, পার্শিয়াল ডেপ্লয়মেন্ট ব্যবহার করে দেখুন।

একটি ডেপ্লয়মেন্ট বাতিল করুন

আপনার প্রোজেক্টের Firebase Hosting পেজ থেকে নির্বাচিত রিলিজের জন্য Rollback অ্যাকশনটি সিলেক্ট করে আপনি একটি Firebase Hosting ডিপ্লয়মেন্ট রোল ব্যাক করতে পারেন।

Firebase Realtime Database , Cloud Storage for Firebase , বা Cloud Firestore এর Security Rules এর রিলিজগুলো রোল ব্যাক করা সম্ভব নয়।

কমান্ড রেফারেন্স

CLI প্রশাসনিক কমান্ড

আদেশ বর্ণনা
সাহায্য CLI বা নির্দিষ্ট কমান্ড সম্পর্কে সহায়ক তথ্য প্রদর্শন করে।
ইনিট বর্তমান ডিরেক্টরিতে একটি নতুন ফায়ারবেস প্রজেক্ট সংযুক্ত ও সেট আপ করে। এই কমান্ডটি বর্তমান ডিরেক্টরিতে একটি firebase.json কনফিগারেশন ফাইল তৈরি করে।
লগইন আপনার গুগল অ্যাকাউন্ট দিয়ে CLI-কে প্রমাণীকরণ করে। এর জন্য একটি ওয়েব ব্রাউজারে অ্যাক্সেস প্রয়োজন।
যেসব রিমোট এনভায়রনমেন্টে localhost অ্যাক্সেসের অনুমতি নেই, সেখানে CLI-তে লগ ইন করতে ব্যবহার করুন --no-localhost ফ্ল্যাগ।
লগইন:সিআই অ-ইন্টারেক্টিভ পরিবেশে ব্যবহারের জন্য একটি প্রমাণীকরণ টোকেন তৈরি করে।
লগইন: যোগ করুন একটি অতিরিক্ত গুগল অ্যাকাউন্ট লগ ইন করে।
লগইন:তালিকা সকল যাচাইকৃত গুগল অ্যাকাউন্টের তালিকা।
লগইন: ব্যবহার করুন সক্রিয় গুগল অ্যাকাউন্টটি সেট করে।
লগআউট CLI থেকে আপনার গুগল অ্যাকাউন্ট সাইন আউট করুন।
খোলা প্রাসঙ্গিক প্রজেক্ট রিসোর্সগুলো দেখার জন্য ব্রাউজার খোলে।
প্রকল্প:তালিকা আপনার অ্যাক্সেস আছে এমন সমস্ত ফায়ারবেস প্রোজেক্টের তালিকা দেখায়।
ব্যবহার CLI-এর জন্য সক্রিয় Firebase প্রজেক্ট সেট করে।
প্রকল্পের বিকল্প নামগুলো পরিচালনা করে।

প্রকল্প ব্যবস্থাপনার নির্দেশাবলী

আদেশ বর্ণনা
ফায়ারবেস প্রোজেক্টের ব্যবস্থাপনা
প্রকল্প: অ্যাডফায়ারবেস বিদ্যমান Google Cloud প্রকল্পে ফায়ারবেস রিসোর্স যুক্ত করে।
প্রকল্প: তৈরি করুন একটি নতুন Google Cloud প্রজেক্ট তৈরি করে, তারপর সেই নতুন প্রজেক্টে ফায়ারবেস রিসোর্স যুক্ত করে।
প্রকল্প:তালিকা আপনার অ্যাক্সেস আছে এমন সমস্ত ফায়ারবেস প্রোজেক্টের তালিকা দেখায়।
ফায়ারবেস অ্যাপস (আইওএস, অ্যান্ড্রয়েড, ওয়েব) পরিচালনা
অ্যাপস: তৈরি করুন সক্রিয় প্রজেক্টে একটি নতুন ফায়ারবেস অ্যাপ তৈরি করে।
অ্যাপস:তালিকা সক্রিয় প্রোজেক্টে নিবন্ধিত ফায়ারবেস অ্যাপগুলোর তালিকা দেখায়।
অ্যাপস:এসডিকেকনফিগ একটি ফায়ারবেস অ্যাপের গুগল পরিষেবা কনফিগারেশন প্রিন্ট করে।
সেটআপ:ওয়েব অপ্রচলিত। এর পরিবর্তে, apps:sdkconfig ব্যবহার করুন এবং প্ল্যাটফর্ম আর্গুমেন্ট হিসেবে web উল্লেখ করুন।
একটি ফায়ারবেস ওয়েব অ্যাপের গুগল পরিষেবা কনফিগারেশন প্রিন্ট করে।
SHA সার্টিফিকেট হ্যাশগুলির ব্যবস্থাপনা (শুধুমাত্র অ্যান্ড্রয়েডের জন্য)
অ্যাপস:অ্যান্ড্রয়েড:শা:তৈরি করুন
FIREBASE_APP_ID SHA_HASH
নির্দিষ্ট SHA সার্টিফিকেট হ্যাশটি নির্দিষ্ট Firebase Android অ্যাপে যুক্ত করে।
অ্যাপস:অ্যান্ড্রয়েড:শা:মুছে ফেলুন
FIREBASE_APP_ID SHA_HASH
নির্দিষ্ট Firebase অ্যান্ড্রয়েড অ্যাপ থেকে নির্দিষ্ট SHA সার্টিফিকেট হ্যাশটি মুছে ফেলে।
অ্যাপস:অ্যান্ড্রয়েড:শা:তালিকা
FIREBASE_APP_ID
নির্দিষ্ট ফায়ারবেস অ্যান্ড্রয়েড অ্যাপটির SHA সার্টিফিকেট হ্যাশগুলো তালিকাভুক্ত করে।

মোতায়েন এবং স্থানীয় উন্নয়ন

এই কমান্ডগুলো আপনাকে আপনার Firebase Hosting সাইট স্থাপন করতে এবং এর সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করে।

আদেশ বর্ণনা
মোতায়েন করুন আপনার প্রজেক্ট ডিরেক্টরি থেকে সক্রিয় প্রজেক্টে কোড এবং অ্যাসেট স্থাপন করে। Firebase Hosting জন্য একটি firebase.json কনফিগারেশন ফাইল প্রয়োজন।
পরিবেশন করুন আপনার Firebase Hosting কনফিগারেশন দিয়ে একটি স্থানীয় ওয়েব সার্ভার চালু করে। Firebase Hosting জন্য একটি firebase.json কনফিগারেশন ফাইল প্রয়োজন।

App Distribution কমান্ড

আদেশ বর্ণনা
অ্যাপডিস্ট্রিবিউশন:ডিস্ট্রিবিউট \
--অ্যাপ FIREBASE_APP_ID
বিল্ডটি পরীক্ষকদের জন্য উপলব্ধ করে।
অ্যাপডিস্ট্রিবিউশন:টেস্টার:অ্যাড প্রকল্পে পরীক্ষকদের যুক্ত করে।
অ্যাপডিস্ট্রিবিউশন:টেস্টার:রিমুভ প্রজেক্ট থেকে টেস্টারদের সরিয়ে দেয়।
অ্যাপডিস্ট্রিবিউশন:টেস্টার:তালিকা প্রকল্পের পরীক্ষকদের তালিকা দেখায়।
অ্যাপডিস্ট্রিবিউশন:গ্রুপস:ক্রিয়েট একটি পরীক্ষক গোষ্ঠী তৈরি করে।
অ্যাপডিস্ট্রিবিউশন:গ্রুপস:ডিলিট পরীক্ষক গোষ্ঠী মুছে দেয়।
অ্যাপডিস্ট্রিবিউশন:গ্রুপ:তালিকা প্রকল্পের পরীক্ষক গোষ্ঠীগুলির তালিকা দেখায়।

App Hosting কমান্ড

আদেশ বর্ণনা
অ্যাপহোস্টিং:ব্যাকএন্ডস:তৈরি করুন
--প্রকল্প PROJECT_ID \
--অবস্থান REGION --অ্যাপ APP_ID
একটি একক কোডবেসের সাথে সংযুক্ত পরিচালিত রিসোর্সসমূহের একটি সংগ্রহ তৈরি করে, যা একটি App Hosting ব্যাকএন্ড গঠন করে। ঐচ্ছিকভাবে, এর ফায়ারবেস অ্যাপ আইডি ব্যবহার করে একটি বিদ্যমান ফায়ারবেস ওয়েব অ্যাপ নির্দিষ্ট করা যেতে পারে।
অ্যাপহোস্টিং:ব্যাকএন্ডস:গেট \
BACKEND_ID
--প্রকল্প PROJECT_ID \
--অবস্থান REGION
একটি ব্যাকএন্ডের পাবলিক ইউআরএল সহ নির্দিষ্ট বিবরণ পুনরুদ্ধার করে।
অ্যাপহোস্টিং:ব্যাকএন্ডস:তালিকা
--প্রকল্প PROJECT_ID
একটি প্রকল্পের সাথে যুক্ত সমস্ত সক্রিয় ব্যাকএন্ডের একটি তালিকা পুনরুদ্ধার করে।
firebase apphosting:backends:delete \
BACKEND_ID
--প্রকল্প PROJECT_ID \
--অবস্থান REGION
প্রজেক্ট থেকে একটি ব্যাকএন্ড মুছে ফেলে।
firebase apphosting:config:export \
--প্রকল্প PROJECT_ID \
--গোপনীয় ENVIRONMENT_NAME
অ্যাপ এমুলেশনে ব্যবহারের জন্য গোপনীয় তথ্য রপ্তানি করে।
ডিফল্টরূপে apphosting.yaml এ সংরক্ষিত সিক্রেট ব্যবহৃত হয়, অথবা --secrets ব্যবহার করে এমন যেকোনো এনভায়রনমেন্ট নির্দিষ্ট করা যায় যার একটি সংশ্লিষ্ট apphosting. ENVIRONMENT_NAME .yaml ফাইল রয়েছে।
firebase apphosting:rollouts:create \
BACKEND_ID
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
ম্যানুয়ালি চালু করার মতো একটি রোলআউট তৈরি করে।
ঐচ্ছিকভাবে কোনো ব্রাঞ্চের সর্বশেষ কমিট অথবা একটি নির্দিষ্ট কমিট উল্লেখ করুন। কোনো অপশন না দেওয়া হলে, ব্রাঞ্চের তালিকা থেকে বেছে নেওয়ার জন্য অনুরোধ করা হয়।
apphosting:secrets:set KEY --project PROJECT_ID \
--অবস্থান REGION \
--ডেটা-ফাইল DATA_FILE_PATH
সিক্রেট ম্যানেজারে গোপনীয় উপাদান সংরক্ষণ করে।
ঐচ্ছিকভাবে গোপন ডেটা পড়ার জন্য একটি পথ প্রদান করুন। স্ট্যান্ডার্ড ইনপুট থেকে গোপন ডেটা পড়তে এটিকে _ তে সেট করুন।
অ্যাপহোস্টিং:সিক্রেটস:গ্রান্টঅ্যাক্সেস KEY BACKEND_ID \
--প্রকল্প PROJECT_ID \
--অবস্থান REGION
ব্যাকএন্ড সার্ভিস অ্যাকাউন্টকে প্রদত্ত সিক্রেটটিতে অ্যাক্সেস দেওয়া হয়, যাতে App Hosting বিল্ড বা রান টাইমে এটি অ্যাক্সেস করতে পারে।
apphosting:secrets:describe KEY \
--প্রকল্প PROJECT_ID
একটি গোপনীয় তথ্য এবং এর সংস্করণগুলির মেটাডেটা সংগ্রহ করে।
firebase apphosting:secrets:access \
KEY[@version] \
--প্রকল্প PROJECT_ID
সিক্রেট এবং এর ভার্সন দেওয়া থাকলে একটি সিক্রেট ভ্যালু অ্যাক্সেস করা যায়। ডিফল্টরূপে সর্বশেষ ভার্সনটি অ্যাক্সেস করা হয়।

Authentication (ব্যবহারকারী ব্যবস্থাপনা) কমান্ড

আদেশ বর্ণনা
প্রমাণীকরণ:রপ্তানি সক্রিয় প্রজেক্টের ব্যবহারকারী অ্যাকাউন্টগুলো একটি JSON বা CSV ফাইলে রপ্তানি করে। আরও বিস্তারিত জানতে, auth:import এবং auth:export পৃষ্ঠাটি দেখুন।
প্রমাণীকরণ: আমদানি একটি JSON বা CSV ফাইল থেকে ব্যবহারকারীর অ্যাকাউন্টগুলো সক্রিয় প্রজেক্টে ইম্পোর্ট করে। আরও বিস্তারিত জানতে, auth:import এবং auth:export পেজটি দেখুন।

Cloud Firestore কমান্ড

আদেশ বর্ণনা
ফায়ারস্টোর:অবস্থান

আপনার Cloud Firestore ডেটাবেসের জন্য উপলব্ধ অবস্থানগুলির তালিকা করুন।

firestore:databases:create DATABASE_ID

আপনার Firebase প্রজেক্টে নেটিভ মোডে একটি ডাটাবেস ইনস্ট্যান্স তৈরি করুন।

এই কমান্ডটি নিম্নলিখিত ফ্ল্যাগগুলো গ্রহণ করে:

  • --location <অঞ্চলের নাম> ডাটাবেসের ডেপ্লয়মেন্ট লোকেশন নির্দিষ্ট করার জন্য। উল্লেখ্য, উপলব্ধ লোকেশনগুলোর তালিকা দেখতে আপনি firebase firestore:locations কমান্ডটি চালাতে পারেন। এটি আবশ্যক
  • --delete-protection <deleteProtectionState> নির্দিষ্ট ডাটাবেসটি মুছে ফেলার অনুমতি দেওয়া বা প্রতিরোধ করার জন্য। বৈধ মানগুলি হল ENABLED বা DISABLED । ডিফল্ট মান হল DISABLED
  • --point-in-time-recovery <PITRState> পয়েন্ট-ইন-টাইম রিকভারি চালু থাকবে কিনা তা নির্ধারণ করার জন্য। বৈধ মানগুলি হলো ENABLED বা DISABLED । ডিফল্ট হলো DISABLED । ঐচ্ছিক।
ফায়ারস্টোর:ডাটাবেস:তালিকা

আপনার ফায়ারবেস প্রোজেক্টের ডেটাবেসগুলোর তালিকা করুন।

firestore:databases:get DATABASE_ID

আপনার Firebase প্রোজেক্টের একটি নির্দিষ্ট ডাটাবেসের কনফিগারেশন জেনে নিন।

firestore:databases:update DATABASE_ID

আপনার ফায়ারবেস প্রজেক্টের একটি নির্দিষ্ট ডেটাবেসের কনফিগারেশন আপডেট করুন।

অন্তত একটি ফ্ল্যাগ আবশ্যক। কমান্ডটি নিম্নলিখিত ফ্ল্যাগগুলো গ্রহণ করে:

  • --delete-protection <deleteProtectionState> নির্দিষ্ট ডাটাবেসটি মুছে ফেলার অনুমতি দেওয়া বা প্রতিরোধ করার জন্য। বৈধ মানগুলি হল ENABLED বা DISABLED । ডিফল্ট মান হল DISABLED
  • --point-in-time-recovery <PITRState> পয়েন্ট-ইন-টাইম রিকভারি চালু থাকবে কিনা তা নির্ধারণ করার জন্য। বৈধ মানগুলি হলো ENABLED বা DISABLED । ডিফল্ট হলো DISABLED । ঐচ্ছিক।
firestore:databases:delete DATABASE_ID

আপনার ফায়ারবেস প্রজেক্ট থেকে একটি ডেটাবেস মুছে ফেলুন।

ফায়ারস্টোর:সূচক

আপনার ফায়ারবেস প্রজেক্টের ডাটাবেসের ইনডেক্সগুলো তালিকাভুক্ত করুন।

কমান্ডটি নিম্নলিখিত ফ্ল্যাগটি গ্রহণ করে:

  • --database DATABASE_ID ব্যবহার করে সেই ডাটাবেসের নাম নির্দিষ্ট করুন যার ইনডেক্স তালিকাভুক্ত করা হবে। এটি প্রদান করা না হলে, ডিফল্ট ডাটাবেসের ইনডেক্স তালিকাভুক্ত করা হবে।
ফায়ারস্টোর:মুছে ফেলুন

সক্রিয় প্রজেক্টের ডাটাবেস থেকে ডকুমেন্ট মুছে ফেলে। CLI ব্যবহার করে, আপনি একটি কালেকশনের সমস্ত ডকুমেন্ট রিকার্সিভলি মুছে ফেলতে পারেন।

মনে রাখবেন যে, CLI ব্যবহার করে Cloud Firestore ডেটা ডিলিট করলে রিড এবং ডিলিট উভয় খরচই প্রযোজ্য হয়। আরও তথ্যের জন্য, ‘আন্ডারস্ট্যান্ড Cloud Firestore বিলিং’ দেখুন।

কমান্ডটি নিম্নলিখিত ফ্ল্যাগটি গ্রহণ করে:

  • --database DATABASE_ID ব্যবহার করে সেই ডাটাবেসের নাম নির্দিষ্ট করা হয় যেখান থেকে ডকুমেন্টগুলো মুছে ফেলা হবে। এটি ঐচ্ছিক।

Cloud Functions for Firebase

আদেশ বর্ণনা
ফাংশন:কনফিগ:ক্লোন অপ্রচলিত।
সক্রিয় ফায়ারবেস প্রজেক্টে অন্য একটি প্রজেক্টের এনভায়রনমেন্ট ক্লোন করে।
ফাংশন:কনফিগ:এক্সপোর্ট সক্রিয় প্রজেক্টের রানটাইম কনফিগারেশন গুগল ক্লাউড Secret Manager এ রপ্তানি করে।
ফাংশন:কনফিগ:গেট অপ্রচলিত।
সক্রিয় প্রজেক্টের Cloud Functions বিদ্যমান কনফিগারেশন মানগুলো পুনরুদ্ধার করে।
ফাংশন:কনফিগ:সেট অপ্রচলিত।
সক্রিয় প্রজেক্টের Cloud Functions রানটাইম কনফিগারেশন মান সংরক্ষণ করে।
ফাংশন:কনফিগ:আনসেট অপ্রচলিত।
সক্রিয় প্রজেক্টের রানটাইম কনফিগারেশন থেকে মানগুলো মুছে ফেলে।
ফাংশন:মুছে ফেলুন
FUNCTION_NAME
নির্দিষ্ট ফাংশনটি মুছে দেয়।
ফাংশন:তালিকা মোতায়েন করা ফাংশনগুলির তালিকা।
ফাংশন:লগ ডেপ্লয় করা Cloud Functions থেকে লগ পড়ে।
ফাংশন:গোপনীয়তা:অ্যাক্সেস
SECRET_NAME
প্রদত্ত সিক্রেট এবং তার ভার্সন ব্যবহার করে একটি গোপন ভ্যালু অ্যাক্সেস করা যায়।
functions:secrets:destroy \
SECRET_NAME
Destroys a secret.
functions:secrets:get \
SECRET_NAME
Gets the metadata for a secret and its versions.
functions:secrets:prune Destroys unused secrets.
functions:secrets:set \
SECRET_NAME
Creates or updates a secret.
functions:shell Starts a local interactive shell for testing functions.

For more information, refer to the environment configuration documentation .

Crashlytics commands

আদেশ বর্ণনা
crashlytics:mappingfile:generateid \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML
Generates a unique mapping file ID in the specified Android resource (XML) file.
crashlytics:mappingfile:upload \
--app= FIREBASE_APP_ID \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Uploads a Proguard-compatible mapping (TXT) file for this app, and associates it with the mapping file ID declared in the specified Android resource (XML) file.
crashlytics:symbols:upload \
--app= FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Generates a Crashlytics -compatible symbol file for native library crashes on Android and uploads it to Firebase servers.

Data Connect commands

These commands and their use cases are covered in more detail in the Data Connect CLI reference guide .

আদেশ বর্ণনা
dataconnect:services:list Lists all deployed Data Connect services in your Firebase project.
dataconnect:sql:diff \
SERVICE_ID
For the specified service, displays the differences between a local Data Connect schema and your Cloud SQL database schema.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migrates your Cloud SQL database's schema to match your local Data Connect schema.
dataconnect:sql:grant\
--role= ROLE \
--email= EMAIL \
SERVICE_ID
Grants the SQL role to the specified user or service account email.
For the --role flag, the SQL role to grant is one of: owner , writer , or reader .
For the --email flag, provide the email address of the user or service account to grant the role to.
dataconnect:sdk:generate Generates typed SDKs for your Data Connect connectors.

Extensions commands

আদেশ বর্ণনা
এক্সট Displays information on how to use Firebase Extensions commands.
Lists the extension instances installed in the active project.
ext:configure \
EXTENSION_INSTANCE_ID
Reconfigures the parameter values of an extension instance in your extension manifest .
ext:info \
PUBLISHER_ID/EXTENSION_ID
Prints detailed information about an extension.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Adds a new instance of an extension into your extension manifest .
ext:sdk:install Installs SDKs for defining extensions in functions.
ext:list Lists all the extension instances installed in a Firebase project.
Prints the instance ID for each extension.
ext:uninstall \
EXTENSION_INSTANCE_ID
Removes an extension instance from your extension manifest .
ext:update \
EXTENSION_INSTANCE_ID
Updates an extension instance to the latest version in your extension manifest .
ext:export Exports all installed extension instances from your project to your extension manifest .

Extensions publisher commands

আদেশ বর্ণনা
ext:dev:init Initializes a skeleton codebase for a new extension in the current directory.
ext:dev:list \
PUBLISHER_ID
Prints a list of all extensions uploaded by a publisher.
ext:dev:register Registers a Firebase project as an extensions publisher project .
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Deprecates extension versions that match the version predicate.
A version predicate can be a single version (such as 1.0.0 ), or a range of versions (such as >1.0.0 ).
If no version predicate is provided, deprecates all versions of that extension.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Undeprecates extension versions that match the version predicate.
A version predicate can be a single version (such as 1.0.0 ), or a range of versions (such as >1.0.0 ).
If no version predicate is provided, undeprecates all versions of that extension.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Uploads a new version of an extension.
ext:dev:usage \
PUBLISHER_ID
Displays install counts and usage metrics for extensions uploaded by a publisher.

Hosting commands

আদেশ বর্ণনা
hosting:disable

Stops serving Firebase Hosting traffic for the active Firebase project.

Your project's Hosting URL will display a "Site Not Found" message after running this command.

Management of Hosting sites
firebase hosting:sites:create \
SITE_ID

Creates a new Hosting site in the active Firebase project using the specified SITE_ID

(Optional) Specify an existing Firebase Web App to associate with the new site by passing the following flag: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Deletes the specified Hosting site

The CLI displays a confirmation prompt before deleting the site.

(Optional) Skip the confirmation prompt by passing the following flags: -f or --force

firebase hosting:sites:get \
SITE_ID

Retrieves information about the specified Hosting site

firebase hosting:sites:list

Lists all Hosting sites for the active Firebase project

Management of preview channels
firebase hosting:channel:create \
CHANNEL_ID

Creates a new preview channel in the default Hosting site using the specified CHANNEL_ID

This command doesn't deploy to the channel.

firebase hosting:channel:delete \
CHANNEL_ID

Deletes the specified preview channel

You cannot delete a site's live channel.

firebase hosting:channel:deploy \
CHANNEL_ID

Deploys your Hosting content and config to the specified preview channel

If the preview channel doesn't yet exist, this command creates the channel in the default Hosting site before deploying to the channel.

firebase hosting:channel:list Lists all channels (including the "live" channel) in the default Hosting site
firebase hosting:channel:open \
CHANNEL_ID
Opens a browser to the specified channel's URL or returns the URL if opening in a browser isn't possible
Version cloning
firebase hosting:clone \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

Clones the most recently deployed version on the specified "source" channel to the specified "target" channel

This command also deploys to the specified "target" channel. If the "target" channel doesn't yet exist, this command creates a new preview channel in the "target" Hosting site before deploying to the channel.

firebase hosting:clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

Clones the specified version to the specified "target" channel

This command also deploys to the specified "target" channel. If the "target" channel doesn't yet exist, this command creates a new preview channel in the "target" Hosting site before deploying to the channel.

You can find the VERSION_ID in the Hosting dashboard of the Firebase console.

Realtime Database commands

Note that you can create your initial, default Realtime Database instance in the Firebase console or by using the general firebase init workflow or the specific firebase init database flow.

Once instances are created, you can manage them as described in Manage and interact with specific instances using the CLI .

আদেশ বর্ণনা
database:get Fetches data from the active project's database and displays it as JSON. Supports querying on indexed data.
database:instances:create Creates a database instance with a specified instance name. Accepts the --location option for creating a database in a specified region. For region names to use with this option, see select locations for your project . If no database instance exists for the current project, you are prompted to run the firebase init flow to create an instance.
database:instances:list List all database instances for this project. Accepts the --location option for listing databases in a specified region. For region names to use with this option see select locations for your project .
database:profile Builds a profile of operations on the active project's database. For more details, refer to Realtime Database operation types .
database:push Pushes new data to a list at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.
database:remove Deletes all data at a specified location in the active project's database.
database:set Replaces all data at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.
database:update Performs a partial update at a specified location in the active project's database. Takes input from a file, STDIN, or a command-line argument.

Remote Config commands

আদেশ বর্ণনা
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Lists the most recent ten versions of the template. Specify 0 to return all existing versions, or optionally pass the --limit option to limit the number of versions being returned.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Gets the template by version (defaults to the latest version) and outputs the parameter groups, parameters, and condition names and version into a table. Optionally, you can write the output to a specified file with -o, FILENAME .
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Rolls back Remote Config template to a specified previous version number or defaults to the immediate previous version (current version -1). Unless --force is passed, prompts Y/N before proceeding to rollback.
remoteconfig:experiments:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Lists all Remote Config experiments for a project, with optional filtering, number of experiments to return per page (defaults to 10), and page token as the starting offset for the list.
remoteconfig:experiments:get \
EXPERIMENT_ID
Gets the details of the specified Remote Config experiment.
remoteconfig:experiments:delete \
EXPERIMENT_ID
Deletes the specified Remote Config experiment.
remoteconfig:rollouts:list \
--filter EXPRESSION
--pageSize NUMBER
--pageToken TOKEN
Lists all Remote Config rollouts for a project, with optional filtering, number of rollouts to return per page (defaults to 10), and page token as the starting offset for the list.
remoteconfig:rollouts:get \
ROLLOUT_ID
Gets the details of the specified Remote Config rollout.
remoteconfig:rollouts:delete \
ROLLOUT_ID
Deletes the specified Remote Config rollout.