Firebase JavaScript SDK टूल के साथ काम करने वाले एनवायरमेंट

इन एनवायरमेंट में Firebase JavaScript SDK काम करता है

Firebase JavaScript SDK, आधिकारिक तौर पर इन एनवायरमेंट में काम करता है.

ब्राउज़र

Firebase प्रॉडक्ट Edge Firefox Chrome iOS Safari Safari
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(परसिस्टेंस को छोड़कर)

(परसिस्टेंस को छोड़कर अगर iOS < 10 है)

Cloud Functions
Cloud Messaging
(Edge 17+, मोबाइल को छोड़कर)
Cloud Storage
Firebase installations
Performance Monitoring
Realtime Database
Remote Config
SQL Connect

1 Firebase AI Logic को पहले "Vertex AI in Firebase" कहा जाता था.

अन्य एनवायरमेंट

Firebase प्रॉडक्ट React Native Node.js (18+) Chrome
एक्सटेंशन
Cordova
Firebase AI Logic 1
App Check
(नेटिव डिवाइस अटेस्टेशन के लिए, कस्टम प्रोवाइडर का इस्तेमाल करना)

(कस्टम प्रोवाइडर का इस्तेमाल करना)
Analytics
Authentication
(ध्यान दें देखें)

(ध्यान दें देखें)

(ध्यान दें देखें)

(ध्यान दें देखें)
Cloud Firestore
(परसिस्टेंस को छोड़कर)

(परसिस्टेंस को छोड़कर)
Cloud Functions
Cloud Messaging
Cloud Storage
(अपलोड को छोड़कर)
Firebase installations
Performance Monitoring
Realtime Database
Remote Config
SQL Connect

1 Firebase AI Logic को पहले "Vertex AI in Firebase" कहा जाता था.

Authentication

Polyfills

Firebase JavaScript SDK, वेब प्लैटफ़ॉर्म के नए मानकों पर बना है. कुछ पुराने ब्राउज़र और JavaScript एनवायरमेंट में, Firebase की ज़रूरी सभी सुविधाएं काम नहीं करती हैं. अगर आपको इन ब्राउज़र/एनवायरमेंट के लिए सहायता देनी है, तो आपको उनके हिसाब से Polyfills लोड करने होंगे.

यहां दिए गए सेक्शन में, उन ज़्यादातर Polyfills की जानकारी दी गई है जिनकी आपको ज़रूरत पड़ सकती है.

ज़रूरी Polyfills

एनवायरमेंट Polyfills
Safari 7, 8, और 9 ES Stable
Node < 10 ES Stable

वैकल्पिक Polyfills

एनवायरमेंट Polyfills Firebase प्रॉडक्ट
  • Safari < 10.1
  • iOS < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Node < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native और Expo
base-64
  • Cloud Storage

सुझाए गए Polyfills

Polyfills लाइसेंस
ES Stable MIT
fetch \- `cross-fetch` - पुराने ब्राउज़र के लिए सबसे सही MIT
fetch \- `undici` - Node.js के लिए सबसे सही MIT
base-64 MIT

React Native और Expo के लिए, ज़रूरी Polyfill सेटअप

अगर 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;
}

अपने ऐप्लिकेशन में Polyfills जोड़ना

पहला विकल्प: (सुझाया जाता है) Babel के साथ इंटिग्रेट किए गए बंडलर का इस्तेमाल करना

अगर बंडलर का इस्तेमाल किया जा रहा है, तो Polyfills पाने के लिए, इसे Babel और @babel/preset-env के साथ इंटिग्रेट करें.

Babel को अपने बंडलर के साथ इंटिग्रेट करने का तरीका जानने के लिए, Babel की इंटरैक्टिव सेटअप गाइड का इस्तेमाल करें.

Babel के साथ, आपको शामिल किए जाने वाले सटीक Polyfills के बारे में चिंता करने की ज़रूरत नहीं है. इसके बजाय, आपको उन ब्राउज़र एनवायरमेंट के बारे में बताना होगा जिनके लिए सहायता देनी है. इसके बाद, Babel आपके लिए ज़रूरी Polyfills जोड़ता है. Babel यह पक्का करता है कि ब्राउज़र की सहायता से जुड़ी आपकी ज़रूरतें हमेशा पूरी हों. भले ही, Firebase या आपका अपना कोड, ES की नई सुविधाओं का इस्तेमाल करना शुरू कर दे.

@babel/preset-env में, एनवायरमेंट टारगेट (विकल्प targets) तय करने और Polyfills (विकल्प useBuiltIns) जोड़ने के लिए, उपलब्ध कॉन्फ़िगरेशन विकल्पों के बारे में ज़्यादा जानकारी दी गई है.

दूसरा विकल्प: (यह विकल्प इस्तेमाल करने का सुझाव नहीं दिया जाता) मैन्युअल तरीके से Polyfills जोड़ना

अपनी पसंदीदा Polyfill लाइब्रेरी (उदाहरण के लिए, core-js) का इस्तेमाल करके, मैन्युअल तरीके से Polyfills जोड़े जा सकते हैं.

import 'core-js/stable'
import 'cross-fetch/polyfill';

core-js एक ऑल-इन-वन Polyfill फ़ाइल भी उपलब्ध कराता है. इसे सीधे एचटीएमएल पेज में शामिल किया जा सकता है.

अगर Babel का इस्तेमाल नहीं किया जा रहा है, तो यह विकल्प Polyfills मैनेज करने का एक आसान तरीका हो सकता है. हालांकि, हम प्रोडक्शन ऐप्लिकेशन के लिए, इस ऑल-इन-वन विकल्प का इस्तेमाल करने का सुझाव नहीं देते, क्योंकि इसमें ऐसे polyfills शामिल होने की संभावना होती है जिनकी ज़रूरत नहीं होती. इससे पेज का साइज़ बढ़ जाता है और इसलिए, पेज लोड अवधि ज़्यादा हो जाती है.