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

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

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

เบราว์เซอร์

ผลิตภัณฑ์ Firebase Edge Firefox Chrome Safari บน iOS 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 รีแอ็กชันเนทีฟ Node.js ส่วนขยาย
Chrome
คอร์โดวา
App Check
(การใช้ผู้ให้บริการที่กำหนดเองเพื่อรับรองอุปกรณ์ที่มาพร้อมเครื่อง)

(ใช้ผู้ให้บริการที่กำหนดเอง)
Analytics
Authentication
(ดูหมายเหตุ)

(ดูหมายเหตุ)

(ดูหมายเหตุ)

(ดูหมายเหตุ)
Cloud Firestore
(ยกเว้น
ความต่อเนื่อง)

(ยกเว้น
ความต่อเนื่อง)
Cloud Functions
การติดตั้ง Firebase ครั้ง
Cloud Messaging
Cloud Storage
(ยกเว้น
การอัปโหลด)
Performance Monitoring
Realtime Database
Remote Config
Vertex AI in Firebase

โพลีฟิล

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

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

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

สภาพแวดล้อม โพลีฟิลล์
Safari 7 และ 8 & 9 วินาที เสถียรสเปน
โหนด < 6.5 เสถียรสเปน

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

สภาพแวดล้อม โพลีฟิลล์ ผลิตภัณฑ์ Firebase
  • โหนด
  • Safari < 10.1
  • iOS < 10.3
ดึงข้อมูล
  • Cloud Functions
  • Performance Monitoring
  • รีแอ็กกับโฆษณาเนทีฟและเอ็กซ์โป
ฐาน 64
  • Cloud Storage

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

โพลีฟิลล์ ใบอนุญาต
สเปน เสถียร MIT
ดึงข้อมูล MIT
ฐาน 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 เพื่อรับ Polyfills

ใช้คู่มือการตั้งค่าแบบอินเทอร์แอกทีฟของ Babel เพื่อเรียนรู้ วิธีนำ Babel ไปใส่ใน Bundler

เมื่อใช้ Babel คุณไม่ต้องกังวลเรื่องโพลีฟิลที่ต้องรวมไว้ แต่คุณจะระบุสภาพแวดล้อมของเบราว์เซอร์ขั้นต่ำที่คุณต้องการรองรับแทน จากนั้น Babel จะเพิ่มโพลีฟิลที่จำเป็นสำหรับคุณ 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 อย่างไรก็ตาม เราไม่แนะนำให้มีตัวเลือกแบบครบวงจรนี้สำหรับเวอร์ชันที่ใช้งานจริง แอปเนื่องจากมักจะมีโพลีฟิลล์ที่ไม่จำเป็น ซึ่งจะเพิ่มหน้า และด้วยเหตุนี้ เวลาที่ใช้ในการโหลดหน้าเว็บ