Các môi trường được hỗ trợ cho SDK JavaScript của Firebase

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Môi trường được hỗ trợ

SDK JavaScript của Firebase chính thức được hỗ trợ trong các môi trường sau.

Các trình duyệt

Sản phẩm Firebase Bờ rìa Firefox Trình duyệt Chrome iOS Safari Cuộc đi săn
phân tích
Xác thực
Cloud Firestore
(ngoại trừ
bền bỉ)

(ngoại trừ
sự bền bỉ
nếu iOS <10)
Chức năng đám mây
Cài đặt Firebase
Nhắn tin qua đám mây
(Edge 17+, ngoại trừ thiết bị di động)
Lưu trữ đám mây
Giám sát hiệu suất
Cơ sở dữ liệu thời gian thực
Cấu hình từ xa

Môi trường khác

Sản phẩm Firebase React Native Node.js Trình duyệt Chrome
Tiện ích mở rộng
Cordova
phân tích
Xác thực
(xem Lưu ý )

(xem Lưu ý )

(xem Lưu ý )

(xem Lưu ý )
Cloud Firestore
(ngoại trừ
bền bỉ)

(ngoại trừ
bền bỉ)
Chức năng đám mây
Cài đặt Firebase
Nhắn tin qua đám mây
Lưu trữ đám mây
(ngoại trừ
tải lên)
Giám sát hiệu suất
Cơ sở dữ liệu thời gian thực
Cấu hình từ xa

Polyfills

SDK JavaScript của Firebase được xây dựng dựa trên các tiêu chuẩn mới nhất của nền tảng web. Một số trình duyệt cũ hơn và môi trường JavaScript không hỗ trợ tất cả các tính năng theo yêu cầu của Firebase. Nếu bạn phải hỗ trợ các trình duyệt / môi trường này, thì bạn cần tải các polyfills tương ứng.

Các phần bên dưới xác định hầu hết các polyfills mà bạn có thể cần.

Polyfills bắt buộc

Môi trường Polyfills
Safari 7 & 8 & 9 ES ổn định
Nút <6,5 ES ổn định

Polyfills tùy chọn

Môi trường Polyfills Sản phẩm Firebase
  • Nút
  • Safari <10.1
  • iOS <10.3
tìm về
  • Chức năng đám mây
  • Giám sát hiệu suất
  • React Native và Expo
cơ sở-64
  • Lưu trữ đám mây

Polyfills được đề xuất

Polyfills Giấy phép
ES ổn định MIT
tìm về MIT
cơ sở-64 MIT

Thiết lập Polyfill bắt buộc cho React Native và Expo

Đối với React Native và Expo nếu bạn đang tải lên một chuỗi được mã hóa base-64, bạn cần thực hiện như sau:

Cài đặt base-64 từ npm:

npm install base-64

Nhập decode từ base-64 và đính kèm nó vào phạm vi toàn cầu như atob để Cloud Storage có thể truy cập nó.

import { decode } from 'base-64';

if(typeof atob === 'undefined') {
  global.atob = decode;
}

Thêm polyfills trong ứng dụng của bạn

Tùy chọn 1 : (Được khuyến nghị) Sử dụng gói tích hợp với Babel

Nếu bạn đang sử dụng gói, hãy tích hợp với Babel@ babel / preset-env để lấy polyfills.

Sử dụng hướng dẫn thiết lập tương tác của Babel để tìm hiểu cách tích hợp Babel với trình gói của bạn.

Với Babel, bạn không cần phải lo lắng về các polyfills chính xác để bao gồm. Thay vào đó, bạn chỉ định các môi trường trình duyệt tối thiểu mà bạn cần hỗ trợ. Babel sau đó thêm các polyfills cần thiết cho bạn. Babel đảm bảo rằng các yêu cầu của bạn về hỗ trợ trình duyệt luôn được đáp ứng, ngay cả khi Firebase hoặc mã của riêng bạn bắt đầu sử dụng các tính năng ES mới.

@ babel / preset-env có thông tin chi tiết về các tùy chọn cấu hình có sẵn để chỉ định mục tiêu môi trường (mục targets tùy chọn) và thêm polyfills (tùy chọn useBuiltIns ).

Tùy chọn 2 : (Không được khuyến nghị) Thêm polyfills theo cách thủ công

Bạn có thể thêm polyfill theo cách thủ công bằng cách sử dụng các thư viện polyfill yêu thích của mình (ví dụ: core-js ).

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

core-js cũng cung cấp một tệp polyfill tất cả trong một mà bạn có thể đưa trực tiếp vào trang HTML.

Tùy chọn này có thể là một cách thuận tiện để quản lý các polyfills nếu bạn không sử dụng Babel. Tuy nhiên, chúng tôi không khuyến nghị tùy chọn tất cả trong một này cho các ứng dụng sản xuất vì nó có thể sẽ bao gồm các polyfills không cần thiết, điều này làm tăng trọng lượng trang và do đó kéo dài thời gian tải trang.