Firebase JavaScript SDK 支援的環境

支援的環境

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

瀏覽器

Firebase 產品 Edge Firefox Chrome iOS Safari Safari
App Check
數據分析
身分驗證
Cloud Firestore
(保留
除外)

(如果 iOS 小於 10,則
保留
除外)
Cloud Functions
Firebase 安裝
雲端通訊
(Edge 17+,行動裝置除外)
Cloud Storage
效能監控
即時資料庫
遠端設定
適用於 Firebase 的 Vertex AI

其他環境

Firebase 產品 React Native Node.js Chrome
擴充功能
哥多華
App Check
(使用自訂提供者執行原生裝置認證)

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

(請參閱附註)

(請參閱附註)

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

(保留
除外)
Cloud Functions
Firebase 安裝
雲端通訊
Cloud Storage
(上傳項目除外
)
效能監控
即時資料庫
遠端設定
適用於 Firebase 的 Vertex AI

聚合物

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

以下各節說明您可能會需要的多數 polyfill。

必要的 polyfill

環境 聚合物
Safari 7、8 和 9 西班牙穩定版
節點小於 6.5 西班牙穩定版

選用的 polyfill

環境 聚合物 Firebase 產品
  • 節點
  • Safari < 10.1
  • iOS 10.3 以下版本
擷取
  • Cloud Functions
  • Performance Monitoring
  • React Native and Expo (反應 Native 和展覽會)
base-64
  • Cloud Storage

建議的 polyfill

聚合物 授權
ES 穩定版 麻省理工學院
擷取 麻省理工學院
樣本數 - 64 麻省理工學院

React Native 和 Expo 的必要 Polyfill 設定

如果您上傳的是 Base-64 編碼字串,就必須執行以下操作:針對 React Native 和 Expo 上傳採用 Base-64 編碼的字串:

從 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

如果使用的是 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,這也會增加網頁權重,並縮短網頁載入時間。