支持的環境
Firebase JavaScript SDK 在以下環境中得到正式支持。
瀏覽器
Firebase 產品 | 邊緣 | 火狐 | 鉻合金 | 蘋果瀏覽器 | 蘋果瀏覽器 |
---|---|---|---|---|---|
分析 | |||||
驗證 | |||||
雲防火牆 | (除了 堅持) | (除了 堅持 如果 iOS < 10) | |||
雲函數 | |||||
Firebase 安裝 | |||||
雲消息傳遞 | (Edge 17+,移動設備除外) | ||||
雲儲存 | |||||
性能監控 | |||||
實時數據庫 | |||||
遠程配置 |
其他環境
Firebase 產品 | 反應原生 | 節點.js | 鉻合金 擴展 | 科爾多瓦 |
---|---|---|---|---|
分析 | ||||
驗證 | (見註) | (見註) | (見註) | (見註) |
雲防火牆 | (除了 堅持) | (除了 堅持) | ||
雲函數 | ||||
Firebase 安裝 | ||||
雲消息傳遞 | ||||
雲儲存 | (除了 上傳) | |||
性能監控 | ||||
實時數據庫 | ||||
遠程配置 |
填充物
Firebase JavaScript SDK 基於網絡平台的最新標準構建。一些較舊的瀏覽器和 JavaScript 環境不支持 Firebase 所需的所有功能。如果您必須支持這些瀏覽器/環境,則需要相應地加載 polyfill。
以下部分確定了您可能需要的大多數 polyfill。
所需的 polyfill
環境 | 填充物 |
---|---|
野生動物園 7 & 8 & 9 | ES穩定 |
節點 < 6.5 | ES穩定 |
可選的 polyfill
環境 | 填充物 | Firebase 產品 |
---|---|---|
| 拿來 |
|
| base-64 |
|
建議的 polyfill
填充物 | 執照 |
---|---|
ES穩定 | 麻省理工學院 |
拿來 | 麻省理工學院 |
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 集成的 bundler
如果您使用的是捆綁器,請與Babel和@babel/preset-env集成以獲取 polyfill。
使用 Babel 的交互式設置指南來了解如何將 Babel 與您的捆綁器集成。
使用 Babel,您無需擔心要包含的確切 polyfill。相反,您指定需要支持的最小瀏覽器環境。然後 Babel 會為你添加必要的 polyfill。 Babel 確保始終滿足您對瀏覽器支持的要求,即使 Firebase 或您自己的代碼開始使用新的 ES 功能也是如此。
@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,這會增加頁面重量,從而增加頁面加載時間。