Android এর জন্য Firebase বুঝুন

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

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

অ্যান্ড্রয়েড স্টুডিওর জন্য ফায়ারবেস অ্যাসিস্ট্যান্ট প্লাগইন

ফায়ারবেস অ্যাসিস্ট্যান্ট হলো একটি অ্যান্ড্রয়েড স্টুডিও প্লাগইন, যা আপনার অ্যান্ড্রয়েড অ্যাপকে একটি ফায়ারবেস প্রজেক্টের সাথে রেজিস্টার করে এবং আপনার অ্যান্ড্রয়েড প্রজেক্টে প্রয়োজনীয় ফায়ারবেস কনফিগারেশন ফাইল, প্লাগইন ও ডিপেন্ডেন্সি যুক্ত করে — এই সবকিছুই অ্যান্ড্রয়েড স্টুডিওর ভেতর থেকেই করা যায়!

ফায়ারবেস অ্যাসিস্ট্যান্ট ব্যবহার করার জন্য অ্যান্ড্রয়েডের গেটিং স্টার্টেড পেজের নির্দেশাবলী অনুসরণ করুন। নিশ্চিত করুন যে আপনি অ্যান্ড্রয়েড স্টুডিও এবং ফায়ারবেস অ্যাসিস্ট্যান্ট উভয়েরই সবচেয়ে হালনাগাদ সংস্করণ ব্যবহার করছেন ( ফাইল > আপডেটের জন্য পরীক্ষা করুন- এ যান)।

যখন আপনি আপনার অ্যাপে যোগ করার জন্য নির্দিষ্ট Firebase প্রোডাক্ট নির্বাচন করেন, তখন Firebase Assistant স্বয়ংক্রিয়ভাবে আপনার app/build.gradle ফাইলে প্রয়োজনীয় ডিপেন্ডেন্সিগুলো ঘোষণা করে। মনে রাখবেন যে, আপনি যদি Firebase Android BoM (প্রস্তাবিত) ব্যবহার করতে চান, তাহলে BoM প্ল্যাটফর্মটি ইম্পোর্ট করার জন্য আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলের (সাধারণত app/build.gradle ) ডিপেন্ডেন্সিগুলো আপডেট করুন। এছাড়াও, আপনাকে প্রতিটি Firebase লাইব্রেরি ডিপেন্ডেন্সি লাইন থেকে ভার্সনগুলো সরিয়ে ফেলতে হবে।

এছাড়াও, কিছু Firebase প্রোডাক্ট ব্যবহার করার জন্য, আপনাকে Android Studio-র বাইরে API এনাবল করতে বা রিসোর্স প্রোভিশন করতে হবে। Firebase Assistant-এ প্রতিটি প্রোডাক্টের নির্দেশাবলীতে আপনার করণীয় অতিরিক্ত পদক্ষেপগুলো বর্ণনা করা থাকে। উদাহরণস্বরূপ, Cloud Firestore ব্যবহার করার জন্য, আপনাকে Firebase কনসোলে আপনার ডাটাবেস এবং রুলস সেট আপ করতে হবে।

গুগল পরিষেবা — প্লাগইন এবং কনফিগারেশন ফাইল

আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যুক্ত করার অংশ হিসেবে, আপনাকে google-services প্লাগইন এবং একটি google-services.json কনফিগারেশন ফাইল আপনার প্রজেক্টে যোগ করতে হবে।

আপনি যদি Firebase কনসোল , ম্যানেজমেন্ট REST API , বা Firebase CLI-এর মাধ্যমে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করেন, তাহলে আপনাকে ম্যানুয়ালি আপনার প্রজেক্টে প্লাগইন এবং কনফিগ ফাইল যুক্ত করতে হবে। তবে, আপনি যদি Firebase অ্যাসিস্ট্যান্ট ব্যবহার করেন, তাহলে সেটআপের সময় এই কাজগুলো আপনার জন্য স্বয়ংক্রিয়ভাবে সম্পন্ন হয়ে যায়।

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

Firebase Android BoM ( Bill of Materials )

Firebase Android BoM ( Bill of Materials ) আপনাকে শুধুমাত্র একটি সংস্করণ—অর্থাৎ BoM এর নিজস্ব সংস্করণ—নির্দিষ্ট করে আপনার সমস্ত ফায়ারবেস লাইব্রেরি সংস্করণ পরিচালনা করার সুযোগ দেয়।

যখন আপনি আপনার অ্যাপে Firebase BoM ব্যবহার করেন, তখন BoM স্বয়ংক্রিয়ভাবে BoM ভার্সনের সাথে ম্যাপ করা স্বতন্ত্র লাইব্রেরি ভার্সনগুলো নিয়ে আসে। সমস্ত স্বতন্ত্র লাইব্রেরি ভার্সনগুলো সামঞ্জস্যপূর্ণ হবে। যখন আপনি আপনার অ্যাপে BoM এর ভার্সন আপডেট করেন, তখন আপনার অ্যাপে ব্যবহৃত সমস্ত Firebase লাইব্রেরি সেই BoM ভার্সনের সাথে ম্যাপ করা ভার্সনগুলোতে আপডেট হয়ে যাবে।

কোন কোন Firebase লাইব্রেরি সংস্করণ একটি নির্দিষ্ট BoM সংস্করণের সাথে ম্যাপ করা আছে BoM জানতে, সেই BoM সংস্করণের রিলিজ নোট দেখুন। যদি একটি BoM সংস্করণের সাথে ম্যাপ করা লাইব্রেরি সংস্করণগুলোর তুলনা করার প্রয়োজন হয়, তাহলে নিচের তুলনা উইজেটটি ব্যবহার করুন।

BoM প্ল্যাটফর্মের জন্য Gradle-এর সমর্থন সম্পর্কে আরও জানুন।

আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত app/build.gradle ) ডিপেন্ডেন্সি ডিক্লেয়ার করার জন্য Firebase Android BoM কীভাবে ব্যবহার করবেন, তা এখানে দেওয়া হলো। BoM ব্যবহার করার সময়, ডিপেন্ডেন্সি লাইনগুলিতে আলাদা আলাদা লাইব্রেরির ভার্সন উল্লেখ করতে হয় না।

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:34.17.0')

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

Firebase Android BoM ব্যবহার সম্পর্কে এখানে কিছু প্রায়শই জিজ্ঞাসিত প্রশ্ন রয়েছে:

Firebase BoM সংস্করণগুলির তুলনা করুন

কোটলিন এক্সটেনশন (KTX) লাইব্রেরি মডিউল

ফিচার মডিউল এবং প্লে ফিচার ডেলিভারি

মে ২০২১ ( Firebase BoM ভি২৮.০.০) থেকে, ফায়ারবেস অ্যান্ড্রয়েড এসডিকেগুলো ডাইনামিক ফিচার মডিউলে ব্যবহার করা যায়, যা আপনার বেস অ্যাপ্লিকেশন মডিউল থেকে আলাদাভাবে ইনস্টল করা হয়।

ডাইনামিক ফিচার মডিউলের জন্য সাপোর্ট চালু করতে, আপনার বেস মডিউলের build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সিটি যোগ করুন:

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta04'
}

এখন যেহেতু আপনি ডাইনামিক মডিউল সাপোর্ট যোগ করেছেন, আপনি আপনার অ্যাপের ফিচার মডিউলগুলোতে Firebase SDK ডিপেন্ডেন্সিগুলো ( Firebase BoM সহ বা ছাড়া) যোগ করতে এবং সেগুলোকে স্বাভাবিকভাবে ব্যবহার করতে পারবেন।

উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটি কোনো নির্দিষ্ট রিয়েলটাইম ফিচার পরিচালনার জন্য Realtime Database ব্যবহার করে, তাহলে আপনি বেস মডিউলের পরিবর্তে ফিচার মডিউলের build.gradlefirebase-database ডিপেন্ডেন্সিটি যোগ করতে পারেন। এতে বেশিরভাগ ব্যবহারকারীর জন্য ডাউনলোডের আকার কমে যাবে।

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

  • Dynamic Links বা Firebase In-App Messaging মতো প্রোডাক্ট, যেগুলো Analytics first_open ইভেন্টের উপর নির্ভর করে, সেগুলো একটি ডাইনামিক ফিচার মডিউলে ব্যবহার করা হলে এই ইভেন্টটি মিস করতে পারে।

  • Cloud Firestore এবং Authentication একসাথে ব্যবহার করার সময়, উভয়কেই সর্বদা একই মডিউলে অন্তর্ভুক্ত করা উচিত। যদি এটি সম্ভব না হয়, তবে নিশ্চিত করুন যে Cloud Firestore আগে Authentication লোড হয়েছে; অন্যথায়, Cloud Firestore কিছু অপারেশনের অথেনটিকেশন অবস্থা ভুল হতে পারে।

  • ডাইনামিক ফিচার মডিউলের ডিপেন্ডেন্সি হিসেবে firebase-crashlytics-ndk ব্যবহার করার সময়, Crashlytics NDK ডকুমেন্টেশনে বর্ণিত পদ্ধতি অনুযায়ী আপনার অ্যাপের build.gradle ফাইলে unstrippedNativeLibsDir প্রপার্টিটি সেট করতে হবে।

ফিচার মডিউল এবং প্লে ফিচার ডেলিভারি সম্পর্কে আরও তথ্যের জন্য, প্লে ফিচার ডেলিভারির ওভারভিউ দেখুন।

গুগল পরিষেবা গ্রেডল প্লাগইন বনাম গুগল প্লে পরিষেবা বনাম গুগল প্লে স্টোর

গুগল, ফায়ারবেস এবং অ্যান্ড্রয়েড ইকোসিস্টেমের বেশ কিছু অংশের নামকরণের রীতি প্রায় একই রকম। নিচে প্রতিটির একটি সংক্ষিপ্ত ব্যাখ্যা দেওয়া হলো:

গুগল পরিষেবা গ্রেডল প্লাগইন
একটি গ্রেডল প্লাগইন ( com.google.gms.google-services ) যা বিল্ড টাইমে চলে এবং নিশ্চিত করে যে আপনার অ্যাপে ফায়ারবেস ও গুগল এপিআই অ্যাক্সেস করার জন্য সঠিক কনফিগারেশন রয়েছে।
নামটি প্লাগইন হলেও, গুগল প্লে সার্ভিসের সাথে এর কোনো সম্পর্ক নেই (পরবর্তী এন্ট্রি দেখুন) এবং রানটাইমে এটি আপনার অ্যাপের কার্যক্ষমতার উপর কোনো প্রভাব ফেলে না।
এই প্লাগইনটি google-services.json ফাইলটিও প্রসেস করে, যা আপনি Firebase সেটআপ করার অংশ হিসেবে আপনার অ্যাপে যোগ করেন। Google services Gradle প্লাগইন সম্পর্কে আরও জানুন।
গুগল প্লে পরিষেবা
একটি অদৃশ্য ব্যাকগ্রাউন্ড সার্ভিস যা অ্যান্ড্রয়েড ডিভাইসে চলে এবং ডিভাইসের অ্যাপগুলোকে বেশ কিছু প্রচলিত গুগল এপিআই (যেমন গুগল ম্যাপস এবং গুগল সাইন ইন) প্রদান করে।
এই সাধারণ API-গুলোকে একটিমাত্র সার্ভিসে কেন্দ্রীভূত করার মাধ্যমে, এটি অন্যান্য অ্যাপের আকার কমিয়ে দেয় এবং একটি ডিভাইসকে OS আপডেট ছাড়াই স্বয়ংক্রিয় নিরাপত্তা আপডেট ও উন্নত ফিচার গ্রহণ করার সুযোগ করে দেয়। গুগল প্লে সার্ভিস সম্পর্কে আরও জানুন।
গুগল প্লে স্টোর
অ্যান্ড্রয়েড ডিভাইসে অ্যাপ, সিনেমা, বই এবং আরও অনেক কিছু ডাউনলোড করার একটি স্টোর।
একজন ডেভেলপার হিসেবে, আপনি গুগল প্লে কনসোলের মাধ্যমে আপনার অ্যাপের ডিস্ট্রিবিউশন, রিলিজ ইত্যাদি পরিচালনা করেন। কোনো ডিভাইসে গুগল প্লে স্টোর থাকলে, সেখানে গুগল প্লে সার্ভিসেসও চালু থাকে (পূর্ববর্তী এন্ট্রি দেখুন)। ডেভেলপারদের জন্য গুগল প্লে স্টোর সম্পর্কে আরও জানুন।
গুগল প্লে গেমস পরিষেবা
মোবাইল গেম ডেভেলপারদের জন্য এপিআই-এর একটি সেট
গুগল প্লে গেমস পরিষেবা সম্পর্কে আরও জানুন এবং আপনার গুগল প্লে গেমস পরিষেবা প্রকল্পে কীভাবে ফায়ারবেস সংহত করবেন তা শিখুন

ফায়ারবেস অ্যান্ড্রয়েড এসডিকে-এর জন্য ওপেন সোর্স রিসোর্স

ফায়ারবেস ওপেন সোর্স উন্নয়নকে সমর্থন করে এবং আমরা কমিউনিটির অবদান ও মতামতকে উৎসাহিত করি।

ফায়ারবেস অ্যান্ড্রয়েড এসডিকে

বেশিরভাগ ফায়ারবেস অ্যান্ড্রয়েড এসডিকে আমাদের পাবলিক ফায়ারবেস গিটহাব রিপোজিটরিতে ওপেন সোর্স লাইব্রেরি হিসেবে তৈরি করা হয়েছে। আমরা শীঘ্রই বাকি ব্যক্তিগতভাবে তৈরি ফায়ারবেস লাইব্রেরিগুলোকে আমাদের পাবলিক গিটহাবে নিয়ে আসার জন্য সক্রিয়ভাবে কাজ করছি!

কুইকস্টার্ট নমুনা

ফায়ারবেস অ্যান্ড্রয়েডের জন্য বেশিরভাগ ফায়ারবেস এপিআই-এর কুইকস্টার্ট স্যাম্পলের একটি সংগ্রহ রক্ষণাবেক্ষণ করে। এই কুইকস্টার্টগুলো আমাদের পাবলিক ফায়ারবেস গিটহাব কুইকস্টার্ট রিপোজিটরিতে খুঁজুন।

আপনি প্রতিটি কুইকস্টার্টকে একটি অ্যান্ড্রয়েড স্টুডিও প্রজেক্ট হিসেবে খুলতে পারেন, তারপর সেগুলোকে একটি মোবাইল ডিভাইস বা ভার্চুয়াল ডিভাইসে (AVD) চালাতে পারেন। অথবা আপনি এই কুইকস্টার্টগুলোকে ফায়ারবেস এসডিকে ব্যবহারের উদাহরণ কোড হিসেবে ব্যবহার করতে পারেন।

আগ্রহের অন্যান্য বিষয়