Google 致力于为黑人社区推动种族平等。查看具体举措

Firebase JavaScript SDK 支持的环境

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

支持的环境

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 产品
  • 节点
  • 野生动物园 < 10.1
  • iOS < 10.3
拿来
  • 云函数
  • 性能监控
  • React Native 和 Expo
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,这会增加页面重量,从而增加页面加载时间。