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

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

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

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

เบราว์เซอร์

ผลิตภัณฑ์ Firebase ขอบ Firefox โครเมียม iOS Safari ซาฟารี
การวิเคราะห์
การตรวจสอบสิทธิ์
Cloud Firestore
(ยกเว้น
วิริยะ)

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

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

ผลิตภัณฑ์ Firebase React Native Node.js โครเมียม
ส่วนขยาย
คอร์โดวา
การวิเคราะห์
การตรวจสอบสิทธิ์
(ดู หมายเหตุ )

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

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

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

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

Polyfills

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

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

Polyfills ที่จำเป็น

สิ่งแวดล้อม Polyfills
Safari 7 & 8 & 9 ES เสถียร
โหนด < 6.5 ES เสถียร

polyfills ทางเลือก

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

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

Polyfills ใบอนุญาต
ES เสถียร MIT
เรียก MIT
ฐาน-64 MIT

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

สำหรับ React Native และ Expo หากคุณกำลังอัปโหลดสตริงที่เข้ารหัส base-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

หากคุณกำลังใช้บันเดิล ให้ผสานรวมกับ Babel และ @babel/preset-env เพื่อรับโพลีฟิล

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

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

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

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

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

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

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

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