支援的環境
下列環境已正式支援 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 產品 |
---|---|---|
|
擷取 |
|
|
base-64 |
|
建議的 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,這樣會增加網頁量,進而導致頁面載入時間。