สภาพแวดล้อมที่รองรับ Firebase JavaScript SDK

สภาพแวดล้อมที่รองรับ

SDK Firebase JavaScript ได้รับการสนับสนุนอย่างเป็นทางการในสภาพแวดล้อมต่อไปนี้

เบราว์เซอร์

ผลิตภัณฑ์ Firebase Edge Firefox Chrome Safari ใน iOS Safari
App Check
Analytics
Authentication
Cloud Firestore
(ยกเว้น
การคงอยู่)

(ยกเว้น
persistence
หาก 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

โพลีฟิลล์

SDK ของ Firebase JavaScript สร้างขึ้นตามมาตรฐานล่าสุดของแพลตฟอร์มเว็บ เบราว์เซอร์รุ่นเก่าและสภาพแวดล้อม JavaScript บางรุ่นไม่รองรับฟีเจอร์ทั้งหมดที่จําเป็นสําหรับ Firebase หากต้องรองรับเบราว์เซอร์/สภาพแวดล้อมเหล่านี้ คุณจะต้องโหลดโพลีฟิลล์ตามความเหมาะสม

ส่วนด้านล่างจะระบุ polyfill ส่วนใหญ่ที่คุณอาจต้องใช้

โพลีฟิลล์ที่จำเป็น

สภาพแวดล้อม การทดแทน
Safari 7, 8 และ 9 สเปน (เวอร์ชันเสถียร)
โหนดน้อยกว่า 10 สเปน (เวอร์ชันเสถียร)

โพลีฟิลล์ที่ไม่บังคับ

สภาพแวดล้อม การทดแทน ผลิตภัณฑ์ Firebase
  • Safari < 10.1
  • iOS < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • โหนด < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native และ Expo
base-64
  • Cloud Storage

โพลีฟิลล์ที่แนะนำ

การทดแทน ใบอนุญาต
สเปน เวอร์ชันเสถียร MIT
fetch - `cross-fetch` - เหมาะสําหรับเบราว์เซอร์รุ่นเก่า MIT
fetch - `undici` - เหมาะสําหรับ Node.js มากที่สุด MIT
base-64 MIT

การตั้งค่า Polyfill ที่จําเป็นสําหรับ React Native และ Expo

สำหรับ React Native และ Expo หากคุณอัปโหลดสตริงที่เข้ารหัสฐาน 64 คุณต้องทําดังนี้

ติดตั้ง 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: (แนะนำ) ใช้เครื่องมือรวมที่ผสานรวมกับ Babel

หากใช้เครื่องมือรวม ให้ผสานรวมกับ Babel และ @babel/preset-env เพื่อรับ polyfill

ใช้คู่มือการตั้งค่าแบบอินเทอร์แอกทีฟของ Babel เพื่อดูวิธีผสานรวม Babel กับเครื่องมือจัดกลุ่ม

เมื่อใช้ 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 ที่ไม่จําเป็น ซึ่งจะเพิ่มขนาดหน้าเว็บและทำให้เวลาในการโหลดหน้าเว็บนานขึ้น