সমর্থিত পরিবেশ
Firebase JavaScript SDK নিম্নলিখিত পরিবেশগুলিতে আনুষ্ঠানিকভাবে সমর্থিত।
ব্রাউজার
| ফায়ারবেস পণ্য | প্রান্ত | ফায়ারফক্স | ক্রোম | iOS সাফারি | সাফারি |
|---|---|---|---|---|---|
| ফায়ারবেস এআই লজিক ১ | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (ছাড়া অধ্যবসায়) | (ছাড়া অধ্যবসায় যদি iOS < 10) | |||
| Cloud Functions | |||||
| Firebase ইনস্টলেশন | |||||
| Cloud Messaging | (১৭+ বয়সী, মোবাইল ছাড়া) | ||||
| Cloud Storage | |||||
| Data Connect | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config |
১ ফায়ারবেস এআই লজিককে পূর্বে " ভার্টেক্স এআই ইন ফায়ারবেস " বলা হত।
অন্যান্য পরিবেশ
| ফায়ারবেস পণ্য | রিঅ্যাক্ট নেটিভ | নোড.জেএস (১৮+) | ক্রোম এক্সটেনশন | কর্ডোভা |
|---|---|---|---|---|
| ফায়ারবেস এআই লজিক ১ | ||||
| App Check | (নেটিভ ডিভাইস অ্যাটেস্টেশন করার জন্য একটি কাস্টম প্রদানকারী ব্যবহার করে) | (একটি কাস্টম প্রদানকারী ব্যবহার করে) | ||
| Analytics | ||||
| Authentication | ( দ্রষ্টব্য দেখুন) | ( দ্রষ্টব্য দেখুন) | ( দ্রষ্টব্য দেখুন) | ( দ্রষ্টব্য দেখুন) |
| Cloud Firestore | (ছাড়া অধ্যবসায়) | (ছাড়া অধ্যবসায়) | ||
| Cloud Functions | ||||
| Data Connect | ||||
| Firebase ইনস্টলেশন | ||||
| Cloud Messaging | ||||
| Cloud Storage | (ছাড়া আপলোড) | |||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config |
১ ফায়ারবেস এআই লজিককে পূর্বে " ভার্টেক্স এআই ইন ফায়ারবেস " বলা হত।
পলিফিলস
Firebase JavaScript SDK ওয়েব প্ল্যাটফর্মের সর্বশেষ মানদণ্ডের উপর নির্মিত। কিছু পুরোনো ব্রাউজার এবং JavaScript পরিবেশ Firebase-এর জন্য প্রয়োজনীয় সমস্ত বৈশিষ্ট্য সমর্থন করে না। যদি আপনাকে এই ব্রাউজার/পরিবেশগুলিকে সমর্থন করতে হয়, তাহলে আপনাকে সেই অনুযায়ী পলিফিল লোড করতে হবে।
নীচের বিভাগগুলি আপনার প্রয়োজনীয় বেশিরভাগ পলিফিল চিহ্নিত করে।
প্রয়োজনীয় পলিফিল
| পরিবেশ | পলিফিলস |
|---|---|
| সাফারি ৭ ও ৮ ও ৯ | ইএস স্টেবল |
| নোড < ১০ | ইএস স্টেবল |
ঐচ্ছিক পলিফিল
| পরিবেশ | পলিফিলস | ফায়ারবেস পণ্য |
|---|---|---|
| আনা |
|
| আনা |
|
| বেস-৬৪ |
|
প্রস্তাবিত পলিফিল
| পলিফিলস | লাইসেন্স |
|---|---|
| ইএস স্টেবল | এমআইটি |
| ফেচ - `cross-fetch` - পুরোনো ব্রাউজারগুলির জন্য সেরা | এমআইটি |
| ফেচ - `undici` - Node.js এর জন্য সেরা | এমআইটি |
| বেস-৬৪ | এমআইটি |
রিঅ্যাক্ট নেটিভ এবং এক্সপোর জন্য প্রয়োজনীয় পলিফিল সেটআপ
রিঅ্যাক্ট নেটিভ এবং এক্সপোর জন্য যদি আপনি একটি বেস-৬৪ এনকোডেড স্ট্রিং আপলোড করেন, তাহলে আপনাকে নিম্নলিখিতগুলি করতে হবে:
npm থেকে base-64 ইনস্টল করুন:
npm install base-64
base-64 থেকে decode আমদানি করুন এবং atob হিসেবে গ্লোবাল স্কোপের সাথে সংযুক্ত করুন যাতে Cloud Storage এটি অ্যাক্সেস করতে পারে।
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
আপনার অ্যাপ্লিকেশনে পলিফিল যোগ করুন
বিকল্প ১ : (প্রস্তাবিত) Babel এর সাথে ইন্টিগ্রেটেড বান্ডলার ব্যবহার করুন
যদি আপনি একটি বান্ডলার ব্যবহার করেন, তাহলে পলিফিল পেতে Babel এবং @babel/preset-env এর সাথে ইন্টিগ্রেট করুন।
আপনার বান্ডলারের সাথে Babel কীভাবে একীভূত করবেন তা শিখতে Babel এর ইন্টারেক্টিভ সেটআপ গাইড ব্যবহার করুন।
Babel-এর সাহায্যে, আপনাকে ঠিক কোন পলিফিলগুলি অন্তর্ভুক্ত করতে হবে তা নিয়ে চিন্তা করতে হবে না। পরিবর্তে, আপনি ন্যূনতম ব্রাউজার পরিবেশগুলি নির্দিষ্ট করেন যা আপনাকে সমর্থন করতে হবে। তারপর Babel আপনার জন্য প্রয়োজনীয় পলিফিলগুলি যোগ করে। Babel নিশ্চিত করে যে ব্রাউজার সমর্থনের জন্য আপনার প্রয়োজনীয়তাগুলি সর্বদা পূরণ করা হয়, এমনকি যদি Firebase বা আপনার নিজস্ব কোড নতুন ES বৈশিষ্ট্যগুলি ব্যবহার শুরু করে।
@babel/preset-env-এ পরিবেশ লক্ষ্যমাত্রা (বিকল্প targets ) নির্দিষ্ট করার জন্য এবং পলিফিল যোগ করার জন্য উপলব্ধ কনফিগারেশন বিকল্পগুলি সম্পর্কে বিস্তারিত তথ্য রয়েছে (বিকল্প useBuiltIns )।
বিকল্প ২ : (প্রস্তাবিত নয়) ম্যানুয়ালি পলিফিল যোগ করুন
আপনি আপনার পছন্দের পলিফিল লাইব্রেরি ব্যবহার করে ম্যানুয়ালি পলিফিল যোগ করতে পারেন (উদাহরণস্বরূপ, core-js )।
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js একটি অল-ইন-ওয়ান পলিফিল ফাইলও প্রদান করে যা আপনি সরাসরি HTML পৃষ্ঠায় অন্তর্ভুক্ত করতে পারেন।
আপনি যদি Babel ব্যবহার না করেন তবে পলিফিল পরিচালনা করার জন্য এই বিকল্পটি একটি সুবিধাজনক উপায় হতে পারে। তবে, আমরা প্রোডাকশন অ্যাপের জন্য এই অল-ইন-ওয়ান বিকল্পটি সুপারিশ করি না কারণ এতে সম্ভবত অপ্রয়োজনীয় পলিফিল থাকবে, যা পৃষ্ঠার ওজন বৃদ্ধি করে এবং ফলস্বরূপ পৃষ্ঠা লোডের সময় বৃদ্ধি করে।