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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

เบราว์เซอร์

ผลิตภัณฑ์ Firebase ขอบ ไฟร์ฟอกซ์ โครเมียม iOS ซาฟารี ซาฟารี
ตรวจสอบแอป
การวิเคราะห์
การรับรองความถูกต้อง
Cloud Firestore
(ยกเว้น
วิริยะ)

(ยกเว้น
วิริยะ
ถ้า iOS < 10)
ฟังก์ชั่นคลาวด์
การติดตั้ง Firebase
การส่งข้อความบนคลาวด์
(ขอบ17+ยกเว้นมือถือ)
การจัดเก็บเมฆ
การตรวจสอบประสิทธิภาพ
ฐานข้อมูลเรียลไทม์
การกำหนดค่าระยะไกล

สภาพแวดล้อมอื่นๆ

ผลิตภัณฑ์ Firebase ตอบสนองพื้นเมือง โหนด js โครเมียม
ส่วนขยาย
คอร์โดวา
ตรวจสอบแอป
(ใช้ ผู้ให้บริการที่กำหนดเอง เพื่อทำการรับรองอุปกรณ์ดั้งเดิม)

(ใช้ ผู้ให้บริการที่กำหนดเอง )
การวิเคราะห์
การรับรองความถูกต้อง
(ดู หมายเหตุ )

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

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

(ดู หมายเหตุ )
Cloud Firestore
(ยกเว้น
วิริยะ)

(ยกเว้น
วิริยะ)
ฟังก์ชั่นคลาวด์
การติดตั้ง Firebase
การส่งข้อความบนคลาวด์
การจัดเก็บเมฆ
(ยกเว้น
อัปโหลด)
การตรวจสอบประสิทธิภาพ
ฐานข้อมูลเรียลไทม์
การกำหนดค่าระยะไกล

โพลีฟิล

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

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

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

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

โพลีฟิลล์เสริม

สภาพแวดล้อม โพลีฟิล ผลิตภัณฑ์ Firebase
  • โหนด
  • ซาฟารี < 10.1
  • iOS < 10.3
ดึง
  • ฟังก์ชั่นคลาวด์
  • การตรวจสอบประสิทธิภาพ
  • ตอบโต้ Native และ Expo
ฐาน-64
  • การจัดเก็บเมฆ

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

โพลีฟิล ใบอนุญาต
อีเอสเสถียร เอ็มไอที
ดึง เอ็มไอที
ฐาน-64 เอ็มไอที

การตั้งค่า 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;
}

เพิ่มโพลีฟิลในแอปพลิเคชันของคุณ

ตัวเลือกที่ 1 : (แนะนำ) ใช้ Bundler ที่รวมเข้ากับ Babel

หากคุณกำลังใช้ Bundler ให้รวมกับ Babel และ @babel/preset-env เพื่อรับ polyfills

ใช้ คู่มือการตั้งค่า แบบโต้ตอบของ Babel เพื่อเรียนรู้วิธีรวม Babel เข้ากับ Bundler ของคุณ

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

@babel/preset-env มีข้อมูลโดยละเอียดเกี่ยวกับตัวเลือกการกำหนดค่าที่มีอยู่สำหรับการระบุเป้าหมายสภาพแวดล้อม ( targets ตัวเลือก ) และการเพิ่มโพลีฟิล (ตัวเลือก useBuiltIns )

ตัวเลือกที่ 2 : (ไม่แนะนำ) เพิ่มโพลีฟิลด้วยตนเอง

คุณสามารถเพิ่ม polyfill ได้ด้วยตนเองโดยใช้ไลบรารี polyfill ที่คุณชื่นชอบ (เช่น core-js )

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

core-js ยังมี ไฟล์ polyfill แบบ all-in-one ที่คุณสามารถรวมไว้ในหน้า HTML ได้โดยตรง

ตัวเลือกนี้อาจเป็นวิธีที่สะดวกในการจัดการโพลีฟิล หากคุณไม่ได้ใช้ Babel อย่างไรก็ตาม เราไม่แนะนำตัวเลือกแบบ all-in-one สำหรับแอปที่ใช้งานจริง เนื่องจากอาจมีการเติมโพลีฟิลที่ไม่จำเป็น ซึ่งจะเพิ่มน้ำหนักของหน้าและทำให้เวลาในการโหลดหน้าลดลง