支援的環境
Firebase JavaScript SDK 在以下環境中得到正式支援。
瀏覽器
Firebase 產品 | 邊緣 | 火狐瀏覽器 | 鉻合金 | iOS 瀏覽器 | 蘋果瀏覽器 |
---|---|---|---|---|---|
應用程式檢查 | |||||
分析 | |||||
驗證 | |||||
雲端Firestore | (除了 堅持) | (除了 堅持 如果 iOS < 10) | |||
雲端功能 | |||||
Firebase 安裝 | |||||
雲端訊息傳遞 | (Edge 17+,行動裝置除外) | ||||
雲端儲存 | |||||
效能監控 | |||||
即時資料庫 | |||||
遠端配置 |
其他環境
Firebase 產品 | 反應本機 | Node.js | 鉻合金 擴充 | 科爾多瓦 |
---|---|---|---|---|
應用程式檢查 | (使用自訂提供者進行本機設備證明) | (使用自訂提供者) | ||
分析 | ||||
驗證 | (看註釋) | (看註釋) | (看註釋) | (看註釋) |
雲端Firestore | (除了 堅持) | (除了 堅持) | ||
雲端功能 | ||||
Firebase 安裝 | ||||
雲端訊息傳遞 | ||||
雲端儲存 | (除了 上傳) | |||
效能監控 | ||||
即時資料庫 | ||||
遠端配置 |
聚合物填料
Firebase JavaScript SDK 是基於網路平台的最新標準建置。一些較舊的瀏覽器和 JavaScript 環境不支援 Firebase 所需的所有功能。如果您必須支援這些瀏覽器/環境,那麼您需要相應地載入polyfill。
以下部分列出了您可能需要的大部分 Polyfill。
所需的 Polyfill
環境 | 聚合物填料 |
---|---|
野生動物園 7 & 8 & 9 | ES穩定 |
節點 < 6.5 | ES穩定 |
可選的 Polyfill
環境 | 聚合物填料 | Firebase 產品 |
---|---|---|
| 拿來 |
|
| 64 進位 |
|
建議的 Polyfill
聚合物填料 | 執照 |
---|---|
ES穩定 | 麻省理工學院 |
拿來 | 麻省理工學院 |
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 的便捷方法。但是,我們不建議在生產應用程式中使用這種一體化選項,因為它可能會包含不必要的填充,這會增加頁面重量,從而增加頁面載入時間。