支持的环境
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,这会增加页面重量,从而增加页面加载时间。