এই ডকুমেন্টে একটি ফায়ারবেস অ্যাপ প্রোডাকশনে চালু করার আগে করণীয় সেরা অনুশীলন এবং বিবেচ্য বিষয়গুলির একটি চেকলিস্ট রয়েছে।
রিলিজ করার জন্য সাধারণ সর্বোত্তম অনুশীলন
প্রোডাকশনে ডেপ্লয় করার আগে, Firebase Local Emulator Suite (সমর্থিত প্রোডাক্টগুলোর জন্য) আপনার সমস্ত পরিবর্তন পরীক্ষা করে নিন। পুঙ্খানুপুঙ্খ পরীক্ষা ব্যয়বহুল ভুল এড়াতে সাহায্য করতে পারে।
যেসব সার্ভিসে Firebase App Check সাপোর্ট করে, সেগুলোর জন্য এটি প্রয়োগ করা শুরু করুন। App Check নিশ্চিত করতে সাহায্য করে যে শুধুমাত্র আপনার আসল অ্যাপগুলোই আপনার ব্যাকএন্ড সার্ভিস এবং রিসোর্স অ্যাক্সেস করতে পারবে।
ফায়ারবেসের সাধারণ নিরাপত্তা চেকলিস্টটি পর্যালোচনা করুন।
আপনার অ্যাপে নতুন ফিচার ও আপডেট নিরাপদে এবং পর্যায়ক্রমে প্রকাশ করতে Firebase Remote Config rollouts ব্যবহার করুন।
যদি এখনও না করে থাকেন, তাহলে Firebase Crashlytics সেট আপ করার কথা বিবেচনা করুন। এটি একটি হালকা ও রিয়েল-টাইম ক্র্যাশ রিপোর্টার যা আপনার অ্যাপের গুণমান ক্ষুণ্ণকারী স্থিতিশীলতার সমস্যাগুলো ট্র্যাক করতে, সেগুলোকে অগ্রাধিকার দিতে এবং সমাধান করতে সাহায্য করে।
আপনার মূল্য নির্ধারণ পরিকল্পনার সীমাবদ্ধতা জানুন এবং বাজেট সতর্কতা সেট করুন।
প্রোডাকশনে যাওয়ার পর খেয়াল রাখবেন যেন আপনার ব্যবহারের সীমা এবং কোটা শেষ না হয়ে যায়, বিশেষ করে যদি আপনি বিনামূল্যের স্পার্ক প্ল্যানে থাকেন। পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যানে আপগ্রেড করার কথা বিবেচনা করুন।
আপনার প্রকল্পের জন্য বাজেট সতর্কতা সেট আপ করুন।
মনে রাখবেন যে বাজেট অ্যালার্ট মানে বাজেটের সর্বোচ্চ সীমা নয় । আপনি যখন আপনার নির্ধারিত সীমার কাছাকাছি পৌঁছাবেন বা তা অতিক্রম করবেন, তখন একটি অ্যালার্ট আপনাকে অবহিত করবে, যাতে আপনি আপনার অ্যাপ বা প্রোজেক্টে প্রয়োজনীয় ব্যবস্থা নিতে পারেন।
উন্নত অ্যালার্ট এবং অ্যাকশন সেট আপ করার কথা বিবেচনা করুন, যেমন এমন ফাংশন যা অ্যালার্টের প্রতিক্রিয়ায় বিলিং নিষ্ক্রিয় করে দেবে।
আপনি যদি Firebase AI Logic , App Hosting , Cloud Functions for Firebase , বা Firebase Extensions ব্যবহার করেন, তাহলে আমরা আপনাকে বাজেট ব্যয়ের সর্বোচ্চ সীমা (budget spend caps) নির্ধারণ করার জন্য দৃঢ়ভাবে সুপারিশ করছি। এর ফলে, আপনার প্রজেক্টের খরচ কোনো নির্দিষ্ট পরিষেবার জন্য নির্ধারিত বাজেট অতিক্রম করলে, সেই পরিষেবাটি সাময়িকভাবে বন্ধ হয়ে যাবে।
পণ্য-নির্দিষ্ট ড্যাশবোর্ডগুলিতে অথবা Firebase কনসোলের কেন্দ্রীয় ব্যবহার ও বিলিং ড্যাশবোর্ডে আপনার ব্যবহার নিরীক্ষণ করুন।
আপনার ফায়ারবেস প্রজেক্ট এবং অ্যাপগুলো যেন সর্বোত্তম অনুশীলন অনুসরণ করে, তা নিশ্চিত করুন।
আপনি একজন একক ডেভেলপার হোন বা একটি বড় আকারের দল, এটা নিশ্চিত করা জরুরি যে আপনার Firebase প্রোজেক্ট, অ্যাপ এবং রিসোর্সগুলো সুরক্ষিত ও নিরাপদ থাকে এবং আপনার দলের পরিবর্তনের সাথে সাথে সেগুলোরও পরিবর্তন সম্ভব হয়।
এটা মনে রাখা সহায়ক যে, একটি Firebase প্রজেক্ট আসলে একটি Google Cloud প্রজেক্ট, যেখানে Firebase পরিষেবা এবং কনফিগারেশনগুলো সক্রিয় করা থাকে। এর মানে হলো, Google Cloud-এর সুপারিশ করা অনেক সেরা অনুশীলন Firebase-এর ক্ষেত্রেও প্রযোজ্য।
ডেভেলপমেন্ট, টেস্টিং এবং প্রোডাকশনের জন্য আলাদা ফায়ারবেস প্রজেক্ট ব্যবহার করুন।
আপনার প্রোডাকশন অ্যাপের সাথে যুক্ত প্রজেক্টে অপ্রত্যাশিত সংস্পর্শ সীমিত করার চেষ্টা করুন। ডেভেলপমেন্ট ওয়ার্কফ্লো সেট আপ করার বিষয়ে আরও জানুন।
আপনার গুরুত্বপূর্ণ প্রজেক্টগুলো সুরক্ষিত রাখুন, বিশেষ করে আপনার প্রোডাকশন অ্যাপের সাথে যুক্ত প্রজেক্টটি।
ভুলবশত প্রজেক্ট মুছে যাওয়া থেকে সুরক্ষার জন্য প্রজেক্ট লিয়েন ব্যবহার করুন।
আপনার প্রোডাকশন এনভায়রনমেন্ট সহজে শনাক্ত করার জন্য Firebase কনসোলে একটি 'Prod' ট্যাগ প্রয়োগ করুন।
যদি এখনও না করে থাকেন, তাহলে একটি Google Cloud অর্গানাইজেশন তৈরি করে তাতে আপনার ফায়ারবেস প্রজেক্টগুলো যুক্ত করার কথা বিবেচনা করতে পারেন।
আপনার ফায়ারবেস প্রজেক্টে একাধিক মালিক (Owner) যোগ করুন, বিশেষ করে যদি আপনার প্রজেক্টটি কোনো Google Cloud অর্গানাইজেশনের অধীনে না থাকে। একটি ফায়ারবেস প্রজেক্টের জন্য কখন এবং কীভাবে মালিক নির্ধারণ করতে হয় , সে সম্পর্কে আরও জানুন।
প্রকল্পের সদস্যদের (যাদের 'মূলনীতি'ও বলা হয়) আলাদাভাবে যোগ না করে গুগল গ্রুপ হিসেবে যুক্ত করুন।
গ্রুপ ব্যবহার করলে টিমের সদস্যদের একসাথে বিভিন্ন ভূমিকা বা রোল নির্ধারণ করা সহজ হয়, সেইসাথে আপনার Firebase প্রোজেক্টে কার অ্যাক্সেস থাকবে তাও পরিচালনা করা যায়, বিশেষ করে যখন টিমের সদস্যরা বদলি হন বা চাকরি ছেড়ে দেন।
প্রকল্পের প্রতিটি সদস্যকে (যাকে 'প্রিন্সিপাল'ও বলা হয়) আপনার Firebase প্রজেক্ট এবং রিসোর্সগুলিতে উপযুক্ত স্তরের অ্যাক্সেস প্রদান করুন। Firebase IAM দিয়ে প্রজেক্ট অ্যাক্সেস পরিচালনা (Manage project access with Firebase IAM ) অংশে এ সম্পর্কে আরও জানুন।
নিশ্চিত করুন যে প্রকল্পের প্রত্যেক প্রযোজ্য সদস্য (যাকে "প্রধান"ও বলা হয়) নির্দিষ্ট পণ্য বা প্রকল্পের অবস্থা (যেমন বিলিং প্ল্যানের পরিবর্তন বা কোটার সীমা) সম্পর্কে সতর্কতা পাওয়ার জন্য তাদের পছন্দগুলি সেট আপ করেছেন। "ফায়ারবেস সতর্কতা গ্রহণ করুন " অংশে আরও জানুন।
আপনি চাইলে আপনার প্রজেক্টের 'অত্যাবশ্যকীয় পরিচিতি' তালিকাটি নিজের মতো করে সাজিয়ে নিতে পারেন, যাতে নির্দিষ্ট বা অতিরিক্ত প্রজেক্ট সদস্যরাও বিজ্ঞপ্তি পান। এটি বিশেষভাবে সহায়ক হয় এটা নিশ্চিত করতে যে, শুধু প্রজেক্টের মালিকই নন, আরও অনেকেই বিলিং, আইনি এবং পণ্যের পরিবর্তন সংক্রান্ত বিজ্ঞপ্তি পান।
আপনার Firebase API কী-গুলোকে শুধুমাত্র সেই API-গুলোর মধ্যে সীমাবদ্ধ রাখুন যেগুলো কী-টির API allowlist- এ থাকা প্রয়োজন। এছাড়াও, Firebase-এর নিরাপত্তা চেকলিস্টে API কী সম্পর্কিত তথ্য দেখে নিন।
আপনার অ্যাপে ব্যবহৃত নির্দিষ্ট পরিষেবাগুলি প্রস্তুত করুন
আপনার অ্যাপে ব্যবহৃত প্রতিটি পণ্য এবং পরিষেবা প্রোডাকশনে ব্যবহারের ক্ষেত্রে নির্দিষ্ট কিছু বিবেচ্য বিষয় থাকতে পারে।
ফায়ারবেস এআই লজিক
Google Analytics
আপনার অ্যাপ চালু হওয়ার মুহূর্ত থেকেই অ্যানালিটিক্স ডেটা সংগ্রহ শুরু করার জন্য Google Analytics অডিয়েন্স শর্তাবলী নির্ধারণ করুন।
Google Analytics ডেটা BigQuery তে এক্সপোর্ট করার সুবিধাটি চালু করার কথা বিবেচনা করুন, যাতে আপনি BigQuery SQL ব্যবহার করে আপনার ডেটা বিশ্লেষণ করতে পারেন অথবা আপনার নিজস্ব টুলস-এর সাথে ব্যবহারের জন্য ডেটা এক্সপোর্ট করতে পারেন।
ব্যবহারকারীর বৈশিষ্ট্যগুলোকে এমন তথ্যের মধ্যে সীমাবদ্ধ রাখুন যা আপনার সম্পূর্ণ অ্যাপের জীবনচক্রের জন্য প্রাসঙ্গিক হবে। আপনি যতগুলো খুশি বৈশিষ্ট্য তৈরি করতে পারবেন , এবং সেগুলো আর্কাইভ করা যাবে না।
আপনার Google Analytics প্রোপার্টি এবং অ্যাকাউন্টগুলির জন্য Google Analytics রোলের সেটিংস পর্যালোচনা করুন। এই অনুমতিগুলি Firebase প্রজেক্টের IAM অনুমতি এবং রোল থেকে আলাদাভাবে পরিচালিত হয়।
Firebase কনসোলের প্রজেক্ট সেটিংসে আপনার অ্যাপ স্টোর আইডি এবং টিম আইডি (প্রয়োজন হলে) সঠিক আছে কিনা, তা নিশ্চিত করুন।
App Check
Firebase কনসোলের প্রজেক্ট সেটিংসে আপনার টিম আইডিটি সঠিক আছে কিনা, তা নিশ্চিত করুন।
যদি এখনও না করে থাকেন, তবে যেসব সার্ভিসে Firebase App Check সাপোর্ট করে, সেগুলোর জন্য এটি প্রয়োগ করা শুরু করুন। App Check নিশ্চিত করতে সাহায্য করে যে শুধুমাত্র আপনার আসল অ্যাপগুলোই আপনার ব্যাকএন্ড সার্ভিস এবং রিসোর্স অ্যাক্সেস করতে পারবে।
Authentication
আপনি যে প্রোভাইডারগুলো ব্যবহার করছেন না, সেগুলো নিষ্ক্রিয় করুন (বিশেষ করে অ্যানোনিমাস অথেন্টিকেশন)।
আপনার অ্যাপ যদি ‘Sign in with Google’ ব্যবহার করে, তাহলে আপনার OAuth সম্মতি স্ক্রিনটি ব্যক্তিগতকৃত করুন।
Authentication ইমেল প্রেরণ পরিষেবার জন্য আপনার ডোমেইন এবং প্রেরক কাস্টমাইজ করুন।
আপনি যদি আইডেন্টিটি প্ল্যাটফর্ম এসএমএস ভেরিফিকেশন পরিষেবা ব্যবহার করেন, তাহলে আপনার অ্যাপকে এসএমএস অপব্যবহার থেকে সুরক্ষিত রাখতে Firebase App Check প্রয়োগ করা শুরু করুন এবং একটি এসএমএস অঞ্চল নীতি কনফিগার করুন।
অ্যাপল প্ল্যাটফর্মে সাধারণ Authentication ত্রুটিগুলির জন্য ত্রুটি পরিচালনা ব্যবস্থা বাস্তবায়ন করুন।
Firebase কনসোলের প্রজেক্ট সেটিংসে আপনার অ্যাপের সাইনিং সার্টিফিকেটের জন্য একটি রিলিজ SHA-1 হ্যাশ যোগ করুন। যদি আপনার অ্যাপ ফোন নম্বর দিয়ে সাইন-ইন অথবা 'সাইন ইন উইথ গুগল' (যার জন্য একটি OAuth ক্লায়েন্টের প্রয়োজন হয়) ব্যবহার করে, তাহলে SHA-1 হ্যাশটি আবশ্যক।
অননুমোদিত ব্যবহার রোধ করতে আপনার ডোমেইনগুলিতে অ্যাক্সেস কন্ট্রোল যোগ করুন। বিশেষত, Firebase কনসোলের Authentication বিভাগে আপনার প্রোডাকশন ডোমেইনে অ্যাক্সেসের অনুমতি দিন (এটি বিশেষভাবে গুরুত্বপূর্ণ যদি আপনি এমন প্রোডাক্ট ব্যবহার করেন যা Firebase Security Rules উপর নির্ভর করে)।
Cloud Firestore
অনিচ্ছাকৃত ডেটা অ্যাক্সেস প্রতিরোধ করতে আপনার Cloud Firestore Security Rules কনফিগার করুন।
আপনার রিলিজ বিল্ডে কোড সঙ্কুচিত করার জন্য ProGuard ব্যবহার করুন। ProGuard ছাড়া, Cloud Firestore SDK এবং এর নির্ভরতাগুলো আপনার APK-এর আকার বাড়িয়ে দিতে পারে।
Cloud Messaging
Cloud Messaging ডেটা BigQuery তে এক্সপোর্ট করার সুবিধাটি চালু করার কথা বিবেচনা করুন, যাতে আপনি BigQuery SQL ব্যবহার করে আপনার ডেটা বিশ্লেষণ করতে পারেন অথবা আপনার নিজস্ব টুলস-এর সাথে ব্যবহারের জন্য ডেটা এক্সপোর্ট করতে পারেন।
Firebase কনসোলে অ্যাপল অ্যাপে Cloud Messaging জন্য আপনার APNS অথোরাইজেশন কী (Auth Key) আপলোড করুন। যদি APNS সার্টিফিকেট ব্যবহার করেন, তবে নিশ্চিত করুন যে আপনার প্রোডাকশন APNS সার্টিফিকেটটি আপলোড করা হয়েছে।
Cloud Storage
- অনিচ্ছাকৃত ডেটা অ্যাক্সেস প্রতিরোধ করতে আপনার Cloud Storage Security Rules কনফিগার করুন।
Crashlytics
নিশ্চিত করুন যে প্রকল্পের প্রত্যেক প্রযোজ্য সদস্য (যাকে "প্রধান"ও বলা হয়) Crashlytics বা প্রকল্পের অবস্থা (যেমন বিলিং প্ল্যানের পরিবর্তন বা কোটার সীমা) সম্পর্কে অ্যালার্ট পাওয়ার জন্য তাদের পছন্দগুলি সেট আপ করেছেন। "ফায়ারবেস অ্যালার্ট গ্রহণ করুন " অংশে আরও জানুন।
Crashlytics ডেটা BigQuery তে এক্সপোর্ট করার সুবিধাটি চালু করার কথা বিবেচনা করুন, যাতে আপনি BigQuery SQL ব্যবহার করে আপনার ডেটা বিশ্লেষণ করতে পারেন অথবা আপনার নিজস্ব টুলস-এর সাথে ব্যবহারের জন্য ডেটা এক্সপোর্ট করতে পারেন।
(শুধুমাত্র নেটিভ অ্যান্ড্রয়েড এবং আইওএস-এর জন্য) কোনো ক্র্যাশ কেন ঘটল এবং এর প্রতিকার কী, তা বুঝতে লাগা সময়কে দ্রুততর করতে Crashlytics -এ এআই সহায়তা চালু করার কথা বিবেচনা করুন।
Crashlytics এ ব্যবহারের জন্য রিলিজ বিল্ডের dSYM ফাইলটি আপলোড করুন। নিশ্চিত করুন যে Xcode স্বয়ংক্রিয়ভাবে dSYM ফাইলগুলো প্রসেস এবং আপলোড করতে পারে।
Crashlytics এ ব্যবহারের জন্য রিলিজ বিল্ডের ProGuard ম্যাপিং আপলোড করুন। Firebase CLI ব্যবহার করে এটি আপলোড করা যায়।
আপনার অ্যান্ড্রয়েড অ্যাপের অবস্থা সম্পর্কে আরও বিস্তারিত ধারণা পেতে ফায়ারবেসকে Google Play এর সাথে লিঙ্ক করুন । উদাহরণস্বরূপ, আপনি Google Play ট্র্যাক অনুযায়ী আপনার অ্যাপের ক্র্যাশ রিপোর্টগুলো ফিল্টার করতে পারেন, যা আপনাকে নির্দিষ্ট বিল্ডগুলোর উপর আপনার ড্যাশবোর্ডকে আরও ভালোভাবে ফোকাস করতে সাহায্য করে।
অ্যান্ড্রয়েডকে লক্ষ্য করে তৈরি এবং IL2CPP ব্যবহার করা বিল্ডগুলোর ক্ষেত্রে, কোড বা কনফিগারেশনে কোনো পরিবর্তন হয়েছে কি না তা নির্বিশেষে, আপনি যে প্রতিটি বিল্ড রানের জন্য সিম্বল পেতে চান, তার জন্য নেটিভ সিম্বল আপলোড করছেন কি না, তা নিশ্চিত করুন।
Dynamic Links
- Dynamic Links এখন আর ব্যবহারযোগ্য নয়, তাই আমরা এই পরিষেবাটি থেকে সরে আসার পরামর্শ দিচ্ছি। ব্যবহার বন্ধ সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলীতে (FAQ) আরও বিস্তারিত জানুন।
Firebase ML
আপনার Firebase ML Apple অ্যাপটিকে প্রোডাকশনের জন্য প্রস্তুত করতে দেখুন।
আপনার Firebase ML অ্যান্ড্রয়েড অ্যাপটি প্রোডাকশনের জন্য প্রস্তুত করতে দেখুন।
Performance Monitoring
নিশ্চিত করুন যে প্রকল্পের প্রত্যেক প্রযোজ্য সদস্য (যাকে "প্রিন্সিপাল"ও বলা হয়) Performance Monitoring বা প্রকল্পের অবস্থা (যেমন বিলিং প্ল্যান পরিবর্তন বা কোটা সীমা) সম্পর্কে অ্যালার্ট পাওয়ার জন্য তাদের পছন্দগুলি সেট আপ করেছেন। "ফায়ারবেস অ্যালার্ট গ্রহণ করুন " অংশে আরও জানুন।
Performance Monitoring ডেটা BigQuery তে এক্সপোর্ট করার সুবিধাটি চালু করার কথা বিবেচনা করুন, যাতে আপনি BigQuery SQL ব্যবহার করে আপনার ডেটা বিশ্লেষণ করতে পারেন অথবা আপনার নিজস্ব টুলস-এর সাথে ব্যবহারের জন্য ডেটা এক্সপোর্ট করতে পারেন।
Realtime Database
অনিচ্ছাকৃত ডেটা অ্যাক্সেস প্রতিরোধ করতে আপনার Realtime Database Security Rules কনফিগার করুন।
নিশ্চিত করুন যে আপনি স্কেল করার জন্য প্রস্তুত। Realtime Database একটি ডিফল্ট কোটা রয়েছে যা বেশিরভাগ অ্যাপ্লিকেশনের জন্য যথেষ্ট, কিন্তু কিছু অ্যাপের অতিরিক্ত ক্ষমতার প্রয়োজন হতে পারে।
Realtime Database সাথে কাজ করার জন্য আপনার প্রোগার্ড নিয়মগুলি কনফিগার করুন ।
Remote Config
- নিশ্চিত করুন যে কোনো পরীক্ষামূলক Remote Config নিয়ম আপনার রিলিজ ব্যবহারকারীদের প্রভাবিত না করে, এবং আপনার অ্যাপে যথাযথ সার্ভার ও ইন-অ্যাপ ডিফল্টগুলো বিতরণ করা হয়েছে।