สภาพแวดล้อมที่รองรับ
Firebase JavaScript SDK ได้รับการรองรับอย่างเป็นทางการในสภาพแวดล้อมต่อไปนี้
เบราว์เซอร์
| ผลิตภัณฑ์ Firebase | Edge | Firefox | Chrome | Safari ใน iOS | Safari | 
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (ยกเว้น ความคงทน)  | 
      (ยกเว้น การคงอยู่ หาก iOS < 10)  | 
      |||
| Cloud Functions | |||||
| Firebase การติดตั้ง | |||||
| Cloud Messaging | (Edge 17 ขึ้นไป ยกเว้นอุปกรณ์เคลื่อนที่)  | 
      ||||
| Cloud Storage | |||||
| Data Connect | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | 
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 | ||||
| Data Connect | ||||
| Firebase การติดตั้ง | ||||
| Cloud Messaging | ||||
| Cloud Storage | (ยกเว้น การอัปโหลด)  | 
      |||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | 
1 Firebase AI Logic เดิมชื่อ "Vertex AI in Firebase"
Polyfill
Firebase JavaScript SDK สร้างขึ้นตามมาตรฐานล่าสุดของแพลตฟอร์มเว็บ เบราว์เซอร์และสภาพแวดล้อม JavaScript บางรุ่นที่เก่ากว่าไม่รองรับฟีเจอร์ทั้งหมด ที่ Firebase ต้องการ หากคุณต้องรองรับเบราว์เซอร์/สภาพแวดล้อมเหล่านี้ คุณจะต้องโหลด Polyfill ตามนั้น
ส่วนด้านล่างจะระบุ Polyfill ส่วนใหญ่ที่คุณอาจต้องใช้
Polyfill ที่จำเป็น
| สภาพแวดล้อม | Polyfill | 
|---|---|
| Safari 7, 8 และ 9 | ES เสถียร | 
| Node < 10 | ES เสถียร | 
Polyfill ที่ไม่บังคับ
| สภาพแวดล้อม | Polyfill | ผลิตภัณฑ์ Firebase | 
|---|---|---|
        
  | 
      fetch | 
        
  | 
    
        
  | 
      fetch | 
        
  | 
    
        
  | 
      base-64 | 
        
  | 
    
Polyfill ที่แนะนำ
| Polyfill | ใบอนุญาต | 
|---|---|
| ES เสถียร | MIT | 
| fetch - `cross-fetch` - เหมาะที่สุดสำหรับเบราว์เซอร์รุ่นเก่า | MIT | 
| fetch - `undici` - เหมาะที่สุดสำหรับ Node.js | MIT | 
| base-64 | MIT | 
การตั้งค่า Polyfill ที่จำเป็นสำหรับ React Native และ Expo
สำหรับ React Native และ Expo หากคุณอัปโหลดสตริงที่เข้ารหัส Base64 คุณต้องทำดังนี้
ติดตั้ง base-64 จาก npm โดยใช้คำสั่งต่อไปนี้
npm install base-64
นำเข้า decode จาก base-64 และแนบไปกับขอบเขตส่วนกลางเป็น atob เพื่อให้ Cloud Storage เข้าถึงได้ 
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
  global.atob = decode;
}
เพิ่ม Polyfill ในแอปพลิเคชัน
ตัวเลือกที่ 1: (แนะนำ) ใช้ Bundler ที่ผสานรวมกับ Babel
หากใช้ Bundler ให้ผสานรวมกับ Babel และ @babel/preset-env เพื่อรับ Polyfill
ใช้คู่มือการตั้งค่าแบบอินเทอร์แอกทีฟของ Babel เพื่อดูวิธีผสานรวม Babel กับ Bundler
Babel ช่วยให้คุณไม่ต้องกังวลเกี่ยวกับ Polyfill ที่แน่นอนที่จะรวมไว้ แต่คุณต้องระบุสภาพแวดล้อมของเบราว์เซอร์ขั้นต่ำที่ต้องการรองรับ จากนั้น Babel จะเพิ่ม Polyfill ที่จำเป็นให้คุณ Babel ช่วยให้มั่นใจได้ว่าข้อกำหนดในการรองรับเบราว์เซอร์ของคุณจะได้รับการตอบสนองเสมอ แม้ว่า Firebase หรือโค้ดของคุณเองจะเริ่มใช้ฟีเจอร์ ES ใหม่ก็ตาม
@babel/preset-env มีข้อมูลโดยละเอียดเกี่ยวกับตัวเลือกการกำหนดค่าที่มีอยู่สำหรับการระบุเป้าหมายสภาพแวดล้อม (ตัวเลือก targets) และการเพิ่ม Polyfill (ตัวเลือก useBuiltIns)
ตัวเลือกที่ 2: (ไม่แนะนำ) เพิ่ม Polyfill ด้วยตนเอง
คุณเพิ่ม Polyfill ด้วยตนเองได้โดยใช้ไลบรารี Polyfill ที่คุณชื่นชอบ (เช่น core-js)
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js ยังมีไฟล์ Polyfill แบบครบวงจร
ที่คุณรวมไว้ในหน้า HTML ได้โดยตรง
ตัวเลือกนี้อาจเป็นวิธีที่สะดวกในการจัดการ Polyfill หากคุณไม่ได้ใช้ Babel อย่างไรก็ตาม เราไม่แนะนำให้ใช้ตัวเลือกแบบครบวงจรนี้สำหรับแอปเวอร์ชันที่ใช้งานจริง เนื่องจากมีแนวโน้มที่จะรวม Polyfill ที่ไม่จำเป็น ซึ่งจะเพิ่มขนาดหน้าเว็บและทำให้เวลาในการโหลดหน้าเว็บนานขึ้น