काम करने वाले एनवायरमेंट
Firebase JavaScript SDK टूल, आधिकारिक तौर पर इन एनवायरमेंट में काम करता है.
ब्राउज़र
Firebase प्रॉडक्ट | Edge | Firefox | Chrome | iOS Safari | Safari |
---|---|---|---|---|---|
App Check | |||||
Analytics | |||||
Authentication | |||||
Cloud Firestore | ( परसिस्टेंस को छोड़कर) |
(iOS 10 से पहले के वर्शन के लिए, परसिस्टेंस को छोड़कर) |
|||
Cloud Functions | |||||
Firebase इंस्टॉलेशन | |||||
Cloud Messaging | (मोबाइल को छोड़कर, Edge 17 और उसके बाद के वर्शन) |
||||
Cloud Storage | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config | |||||
Vertex AI in Firebase |
अन्य एनवायरमेंट
Firebase प्रॉडक्ट | React Native | Node.js (18+) | Chrome एक्सटेंशन |
Cordova |
---|---|---|---|---|
App Check | (नेटिव डिवाइस की पुष्टि करने के लिए, कस्टम प्रोवाइडर का इस्तेमाल करना) |
(कस्टम प्रोवाइडर का इस्तेमाल करके) |
||
Analytics | ||||
Authentication | (ध्यान दें देखें) |
(ध्यान दें देखें) |
(ध्यान दें देखें) |
(ध्यान दें देखें) |
Cloud Firestore | ( परसिस्टेंस को छोड़कर) |
( परसिस्टेंस को छोड़कर) |
||
Cloud Functions | ||||
Data Connect | ||||
Firebase इंस्टॉलेशन | ||||
Cloud Messaging | ||||
Cloud Storage | ( अपलोड को छोड़कर) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config | ||||
Vertex AI in Firebase |
पॉलीफ़िल
Firebase JavaScript SDK टूल, वेब प्लैटफ़ॉर्म के नए स्टैंडर्ड पर आधारित है. कुछ पुराने ब्राउज़र और JavaScript एनवायरमेंट में, Firebase की ज़रूरी सभी सुविधाएं काम नहीं करतीं. अगर आपको इन ब्राउज़र/एनवायरमेंट के साथ काम करना है, तो आपको इसके हिसाब से पॉलीफ़िल लोड करने होंगे.
नीचे दिए गए सेक्शन में, उन ज़्यादातर पॉलीफ़िल की पहचान की गई है जिनकी आपको ज़रूरत पड़ सकती है.
ज़रूरी पॉलीफ़िल
एनवायरमेंट | पॉलीफ़िल |
---|---|
Safari 7, 8, और 9 | ES Stable |
नोड की संख्या 10 से कम हो | ES Stable |
वैकल्पिक polyfills
एनवायरमेंट | पॉलीफ़िल | Firebase के प्रॉडक्ट |
---|---|---|
|
फ़ेच करें |
|
|
फ़ेच करें |
|
|
base-64 |
|
सुझाई गई पॉलीफ़िल
पॉलीफ़िल | लाइसेंस |
---|---|
ES स्थिर | 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 के साथ इंटिग्रेट करें, ताकि आप polyfills पा सकें.
Babel को अपने बंडलर के साथ इंटिग्रेट करने का तरीका जानने के लिए, Babel की इंटरैक्टिव सेटअप गाइड का इस्तेमाल करें.
Babel की मदद से, आपको यह तय करने की ज़रूरत नहीं है कि कौनसे पॉलीफ़िल शामिल करने हैं. इसके बजाय, आपको उन ब्राउज़र एनवायरमेंट के बारे में बताना होगा जिन पर आपको अपने ऐप्लिकेशन को चलाना है. इसके बाद, Babel आपके लिए ज़रूरी पॉलीफ़िल जोड़ता है. Babel यह पक्का करता है कि ब्राउज़र के साथ काम करने की आपकी ज़रूरी शर्तें हमेशा पूरी होती रहें. भले ही, Firebase या आपका कोड, ES की नई सुविधाओं का इस्तेमाल शुरू कर दे.
@babel/preset-env में, एनवायरमेंट टारगेट (targets
विकल्प) तय करने और पॉलीफ़िल (useBuiltIns
विकल्प) जोड़ने के लिए, कॉन्फ़िगरेशन के उपलब्ध विकल्पों के बारे में पूरी जानकारी दी गई है.
दूसरा विकल्प: (इसका सुझाव नहीं दिया जाता) मैन्युअल तरीके से पॉलीफ़िल जोड़ना
अपनी पसंदीदा पॉलीफ़िल लाइब्रेरी (उदाहरण के लिए, core-js
) का इस्तेमाल करके, पॉलीफ़िल को मैन्युअल तरीके से जोड़ा जा सकता है.
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
, सभी-एक-साथ-काम करने वाली polyfill फ़ाइल भी उपलब्ध कराता है. इसे सीधे एचटीएमएल पेज में शामिल किया जा सकता है.
अगर Babel का इस्तेमाल नहीं किया जा रहा है, तो यह विकल्प, पॉलीफ़िल को मैनेज करने का एक आसान तरीका हो सकता है. हालांकि, हम प्रोडक्शन ऐप्लिकेशन के लिए, एक ही जगह पर सभी सुविधाएं देने वाले इस विकल्प का सुझाव नहीं देते. इसकी वजह यह है कि इसमें ज़रूरत से ज़्यादा पॉलीफ़िल शामिल हो सकते हैं. इससे पेज का साइज़ बढ़ जाता है और पेज लोड होने में ज़्यादा समय लगता है.