支援的環境
Firebase JavaScript SDK 正式支援下列環境。
瀏覽器
Firebase 產品 | Edge | Firefox | Chrome | iOS Safari | Safari |
---|---|---|---|---|---|
Firebase AI Logic 1 | |||||
Analytics | |||||
App Check | |||||
Authentication | |||||
Cloud Firestore | (except persistence) |
(iOS 10 以下版本除外,這類版本會保留狀態) |
|||
Cloud Functions | |||||
Firebase 安裝次數 | |||||
Cloud Messaging | (Edge 17 以上版本,行動裝置除外) |
||||
Cloud Storage | |||||
Data Connect | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config |
1 Firebase AI Logic 以前稱為「Vertex AI in Firebase」
其他環境
Firebase 產品 | React Native | Node.js (18 以上版本) | Chrome 擴充功能 |
Cordova |
---|---|---|---|---|
Firebase AI Logic 1 | ||||
App Check | (使用自訂供應商執行原生裝置認證) |
(使用自訂供應商) |
||
Analytics | ||||
Authentication | (請參閱注意事項) |
(請參閱注意事項) |
(請參閱注意事項) |
(請參閱注意事項) |
Cloud Firestore | (except persistence) |
(except persistence) |
||
Cloud Functions | ||||
Data Connect | ||||
Firebase 安裝次數 | ||||
Cloud Messaging | ||||
Cloud Storage | (上傳項目除外) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config |
1 Firebase AI Logic 以前稱為「Vertex AI in Firebase」
Polyfill
Firebase JavaScript SDK 是以最新的網頁平台標準建構而成,部分舊版瀏覽器和 JavaScript 環境不支援 Firebase 所需的所有功能。如果必須支援這些瀏覽器/環境,則需要相應載入 Polyfill。
以下各節會列出您可能需要的大部分 Polyfill。
必要 Polyfill
環境 | Polyfills |
---|---|
Safari 7、8 和 9 | ES 穩定版 |
節點 < 10 | ES 穩定版 |
選用 Polyfill
環境 | Polyfills | Firebase 產品 |
---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
建議的 Polyfill
Polyfills | 授權 |
---|---|
ES 穩定版 | 麻省理工學院 |
fetch - `cross-fetch` - 最適合舊版瀏覽器 | 麻省理工學院 |
fetch - `undici` - 最適合 Node.js | 麻省理工學院 |
base-64 | 麻省理工學院 |
React Native 和 Expo 的必要 Polyfill 設定
如果您使用 React Native 和 Expo 上傳 Base64 編碼字串,請按照下列步驟操作:
從 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,導致網頁權重增加,進而延長網頁載入時間。