支持的環境
以下環境正式支持 Firebase JavaScript SDK。
瀏覽器
火力地堡產品 | 邊緣 | 火狐 | 鉻合金 | 蘋果瀏覽器 | 蘋果瀏覽器 |
---|---|---|---|---|---|
應用檢查 | |||||
分析 | |||||
驗證 | |||||
雲端 Firestore | (除了 堅持) | (除了 堅持 如果 iOS < 10) | |||
雲端功能 | |||||
Firebase 安裝 | |||||
雲消息 | (Edge 17+,手機除外) | ||||
雲儲存 | |||||
性能監控 | |||||
實時數據庫 | |||||
遠程配置 |
其他環境
火力地堡產品 | 反應本機 | 節點.js | 鉻合金 擴展 | 科爾多瓦 |
---|---|---|---|---|
應用檢查 | (使用自定義提供程序進行本機設備證明) | (使用自定義提供程序) | ||
分析 | ||||
驗證 | (見註) | (見註) | (見註) | (見註) |
雲端 Firestore | (除了 堅持) | (除了 堅持) | ||
雲端功能 | ||||
Firebase 安裝 | ||||
雲消息 | ||||
雲儲存 | (除了 上傳) | |||
性能監控 | ||||
實時數據庫 | ||||
遠程配置 |
Polyfills
Firebase JavaScript SDK 建立在網絡平台的最新標準之上。一些較舊的瀏覽器和 JavaScript 環境不支持 Firebase 所需的所有功能。如果您必須支持這些瀏覽器/環境,那麼您需要相應地加載 polyfill。
以下部分列出了您可能需要的大部分 polyfill。
所需的 polyfill
環境 | Polyfills |
---|---|
野生動物園 7 & 8 & 9 | 穩定版 |
節點 < 6.5 | 穩定版 |
可選的 polyfill
環境 | Polyfills | Firebase 產品 |
---|---|---|
| 拿來 |
|
| base-64 |
|
建議的 polyfill
Polyfills | 執照 |
---|---|
穩定版 | 麻省理工學院 |
拿來 | 麻省理工學院 |
base-64 | 麻省理工學院 |
React Native 和 Expo 所需的 Polyfill 設置
對於 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 集成的捆綁器
如果您使用的是捆綁器,請與Babel和@babel/preset-env集成以獲取 polyfill。
使用 Babel 的交互式設置指南來了解如何將 Babel 與您的捆綁器集成。
使用 Babel,您無需擔心要包含的確切 polyfill。相反,您指定需要支持的最小瀏覽器環境。然後 Babel 會為你添加必要的 polyfill。 Babel 確保始終滿足您對瀏覽器支持的要求,即使 Firebase 或您自己的代碼開始使用新的 ES 功能。
@babel/preset-env有關於指定環境目標(選項targets
)和添加 polyfills(選項useBuiltIns
)的可用配置選項的詳細信息。
選項 2 :(不推薦)手動添加 polyfill
您可以使用您最喜歡的 polyfill 庫(例如core-js
)手動添加 polyfill。
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
還提供了一個一體化的 polyfill 文件,您可以直接將其包含在 HTML 頁面中。
如果您不使用 Babel,此選項可能是管理 polyfill 的便捷方式。但是,我們不建議將此一體化選項用於生產應用程序,因為它可能包含不必要的 polyfill,這會增加頁面重量,從而增加頁面加載時間。