কাজ করে এমন এনভায়রনমেন্ট
Firebase JavaScript SDK অফিসিয়ালি নিম্নলিখিত এনভায়রনমেন্টে কাজ করে।
ব্রাউজারসমূহ
| Firebase প্রোডাক্ট | Edge | Firefox | Chrome | iOS Safari | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic ১ | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | ( পারসিস্টেন্স ছাড়া) |
(iOS < 10 হলে পারসিসটেন্স ছাড়া) |
|||
| Cloud Functions | |||||
| Cloud Messaging | (Edge 17+, মোবাইল ছাড়া) |
||||
| Cloud Storage | |||||
| Firebase ইনস্টলেশন | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | |||||
| SQL Connect |
1 Firebase AI Logic-এর আগে নাম ছিল "Vertex AI in Firebase"।
অন্যান্য পরিবেশ
| Firebase প্রোডাক্ট | React Native | Node.js (18+) | Chrome এক্সটেনশন |
কর্ডোভা |
|---|---|---|---|---|
| Firebase AI Logic ১ | ||||
| App Check | (নেটিভ ডিভাইস অ্যাটেস্টেশন করার জন্য কাস্টম প্রোভাইডার ব্যবহার করে) |
(কাস্টম পরিষেবা প্রদানকারী ব্যবহার করে) |
||
| Analytics | ||||
| Authentication | (মনে রাখবেন দেখুন) |
(মনে রাখবেন দেখুন) |
(মনে রাখবেন দেখুন) |
(মনে রাখবেন দেখুন) |
| Cloud Firestore | ( পারসিস্টেন্স ছাড়া) |
( পারসিস্টেন্স ছাড়া) |
||
| Cloud Functions | ||||
| Cloud Messaging | ||||
| Cloud Storage | ( আপলোড ছাড়া) |
|||
| Firebase ইনস্টলেশন | ||||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | ||||
| SQL Connect |
1 Firebase AI Logic-এর আগে নাম ছিল "Vertex AI in Firebase"।
পলিফিল
Firebase JavaScript SDK ওয়েব প্ল্যাটফর্মের লেটেস্ট স্ট্যান্ডার্ডের উপর ভিত্তি করে তৈরি করা হয়েছে। কিছু পুরনো ব্রাউজার এবং জাভাস্ক্রিপ্ট এনভায়রনমেন্টে Firebase-এর জন্য প্রয়োজনীয় সব ফিচার কাজ করে না। আপনাকে যদি এইসব ব্রাউজার/এনভায়রনমেন্টে কাজ করতে হয়, তাহলে সেই অনুযায়ী পলিফিল লোড করতে হবে।
আপনার প্রয়োজন হতে পারে এমন বেশিরভাগ পলিফিল নিচে উল্লেখ করা হয়েছে।
প্রয়োজনীয় পলিফিল
| পরিবেশ | Polyfills |
|---|---|
| Safari 7, 8 ও 9 | ES Stable |
| Node < 10 | ES Stable |
ঐচ্ছিক পলিফিল
| পরিবেশ | Polyfills | Firebase প্রোডাক্ট |
|---|---|---|
|
নিয়ে আসা |
|
|
নিয়ে আসা |
|
|
base-64 |
|
সাজেস্ট করা পলিফিল
| Polyfills | লাইসেন্স |
|---|---|
| ES Stable | MIT |
| fetch - `cross-fetch` - পুরনো ব্রাউজারের জন্য সবচেয়ে ভালো | MIT |
| fetch - `undici` - Node.js-এর জন্য সবচেয়ে ভাল | MIT |
| base-64 | MIT |
React Native ও Expo-এর জন্য প্রয়োজনীয় পলিফিল সেট-আপ
React Native এবং Expo-এর জন্য আপনি যদি base-64 এনকোড করা স্ট্রিং আপলোড করেন, তাহলে আপনাকে নিম্নলিখিত কাজগুলি করতে হবে:
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 ব্যবহার না করলে, এই বিকল্পটি পলিফিল ম্যানেজ করার একটি সুবিধাজনক উপায় হতে পারে। তবে, প্রোডাকশন অ্যাপের জন্য আমরা এই অল-ইন-ওয়ান বিকল্পটি সাজেস্ট করি না কারণ এতে সম্ভবত অপ্রয়োজনীয় পলিফিল অন্তর্ভুক্ত থাকবে, যা পৃষ্ঠার সাইজ এবং তাই পৃষ্ঠা লোড করার সময় বাড়িয়ে দেয়।