Firebase JavaScript SDK 支援的環境

支援的環境

下列環境已正式支援 Firebase JavaScript SDK。

瀏覽器

Firebase 產品 Edge Firefox Chrome iOS Safari Safari
應用程式檢查
數據分析
身分驗證
Cloud Firestore
(保留
資料除外)

(如果 iOS 小於 10,
保留資料
除外)
Cloud Functions
Firebase 安裝
雲端通訊
(邊緣 17 歲以上,行動裝置除外)
Cloud Storage
監控效能
即時資料庫
遠端設定

其他環境

Firebase 產品 React Native Node.js Chrome
擴充功能
哥多華
應用程式檢查
(透過自訂提供者執行原生裝置認證)

(使用自訂提供者)
數據分析
身分驗證
(請參閱附註)

(請參閱附註)

(請參閱附註)

(請參閱附註)
Cloud Firestore
(保留
資料除外)

(保留
資料除外)
Cloud Functions
Firebase 安裝
雲端通訊
Cloud Storage
(上傳除外
)
監控效能
即時資料庫
遠端設定

Polyfill

Firebase JavaScript SDK 奠基於網路平台的最新標準。部分舊版瀏覽器和 JavaScript 環境不支援 Firebase 所需的所有功能。如果您必須支援這些瀏覽器/環境,則需要據此載入 polyfill。

以下各節介紹了可能需要的大多數 polyfill。

必要的 polyfill

環境 Polyfill
Safari 7、8、9 ES 穩定版
節點 < 6.5 ES 穩定版

選用的 polyfill

環境 Polyfill Firebase 產品
  • 節點
  • Safari < 10.1
  • iOS 10.3 以下版本
擷取
  • Cloud Functions
  • Performance Monitoring
  • React Native and Expo
base-64
  • Cloud Storage

建議的 polyfill

Polyfill 授權
ES 穩定版 麻省理工學院
擷取 麻省理工學院
Base-64 麻省理工學院

React Native 和 Expo 的必要 Polyfill 設定

上傳 Base-64 編碼字串時,若是 React Native 和 Expo,您需要執行以下操作:

從 npm 安裝 base-64

npm install base-64

base-64 匯入 decode,並以 atob 的形式附加至全域範圍,讓 Cloud Storage 可以存取該範圍。

import { decode } from 'base-64';

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

在應用程式中新增 polyfill

方法 1(建議) 使用與 Babel 整合的套裝組合

如果您使用的是 Bundler,請整合 Babel@babel/preset-env 來取得 polyfill。

請參閱 Babel 的互動式設定指南,瞭解如何將 Babel 與 Bundler 整合。

有了 Babel,您就不必擔心要加入的確切 polyfill。請改為指定需要支援的最低瀏覽器環境。Babel 會為您新增必要的 polyfill。即使 Firebase 或您自己的程式碼開始使用新的 ES 功能,Babel 可確保瀏覽器支援的需求永遠符合您的需求。

@babel/preset-env 詳細說明瞭可用於指定環境目標 (選項 targets) 及新增 polyfill (選項 useBuiltIns) 的設定選項。

選項 2(不建議) 手動新增 polyfill

您可以使用慣用的 polyfill 程式庫 (例如 core-js) 手動新增 polyfill。

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

core-js 也提供全方位 Polyfill 檔案,您可以直接加到 HTML 網頁中。

如果您不使用 Babel,可以透過這個選項輕鬆管理 polyfill。但是,我們不建議對正式版應用程式採用這個全方位選項,因為這麼做可能會包含不必要的 polyfill,這樣會增加網頁量,進而導致頁面載入時間。