使用 Firebase

编辑页面

一份关于开始使用 Firebase JS SDK 和 React Native Firebase 库的指南。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

Firebase 是一个 Backend-as-a-Service (BaaS) 应用开发平台,提供实时数据库、云存储、身份验证、崩溃报告、分析等托管后端服务。 它构建于 Google 的基础设施之上,并可自动扩展。

在你的项目中使用 Firebase 有两种不同的方式:

React Native 同时支持 JS SDK 和原生 SDK。以下各节将指导你何时使用哪种 SDK,以及在 Expo 项目中使用 Firebase 所需的全部配置步骤。

先决条件

在继续之前,请确保你已经使用 Firebase 控制台 创建了一个新的 Firebase 项目,或者已经有一个现有项目。

使用 Firebase JS SDK

Firebase JS SDK 是一个 JavaScript 库,可让你在项目中与 Firebase 服务交互。 它支持在 React Native 应用中使用 AuthenticationFirestoreRealtime DatabaseStorage 等服务。

何时使用 Firebase JS SDK

在以下情况下,你可以考虑使用 Firebase JS SDK:

  • 想在应用中使用 Authentication、Firestore、Realtime Database 和 Storage 等 Firebase 服务,并希望使用 Expo Go 开发应用。
  • 想快速开始使用 Firebase 服务。
  • 想为 Android、iOS 和 Web 创建一个通用应用。

注意事项

Firebase JS SDK 不支持移动应用的所有服务。其中一些服务包括 Analytics、Dynamic Links 和 Crashlytics。如果你想使用这些服务,请参见 React Native Firebase 部分。

安装并初始化 Firebase JS SDK

Expo SDK 仅支持 firebase@12.0.0 及以上版本。早于此版本会导致 ES 模块解析错误。

1

安装 SDK

在你创建好 Expo 项目 后,可以使用以下命令安装 Firebase JS SDK:

Terminal
npx expo install firebase

2

在项目中初始化 SDK

要在 Expo 项目中初始化 Firebase 实例,你必须创建一个配置对象,并将其传递给从 firebase/app 模块导入的 initializeApp() 方法。

配置对象需要 API 密钥和其他唯一标识符。要获取这些值,你需要在 Firebase 项目中注册一个 Web 应用。你可以在 Firebase 文档 中找到这些说明。

在获得 API 密钥和其他标识符后,你可以通过在项目根目录或你存放配置文件的任何其他目录中创建一个新的 firebaseConfig.js 文件,粘贴下面的代码片段。

firebaseConfig.js
import { initializeApp } from 'firebase/app'; // 可选地导入你想使用的服务 // import {...} from 'firebase/auth'; // import {...} from 'firebase/database'; // import {...} from 'firebase/firestore'; // import {...} from 'firebase/functions'; // import {...} from 'firebase/storage'; // 初始化 Firebase const firebaseConfig = { apiKey: 'api-key', authDomain: 'project-id.firebaseapp.com', databaseURL: 'https://project-id.firebaseio.com', projectId: 'project-id', storageBucket: 'project-id.appspot.com', messagingSenderId: 'sender-id', appId: 'app-id', measurementId: 'G-measurement-id', }; const app = initializeApp(firebaseConfig); // 有关如何在项目中访问 Firebase 的更多信息, // 请参阅 Firebase 文档:https://firebase.google.com/docs/web/setup#access-firebase

使用 Firebase JS SDK 不需要安装其他插件或进行额外配置。

Firebase 9 及以上版本提供了模块化 API。你可以直接从 firebase 包中导入你想使用的任何服务。例如,如果你想在项目中使用身份验证服务,可以从 firebase/auth 包中导入 auth 模块。

故障排除提示: 如果你在使用 Firebase JS SDK 时遇到与身份验证持久性相关的问题,请参阅关于设置持久性以在重新加载之间保持用户登录状态的指南。

下一步

身份验证

有关如何在项目中使用身份验证的更多信息,请参阅 Firebase 文档。

Firestore

有关如何在项目中使用 Firestore 数据库的更多信息,请参阅 Firebase 文档。

Realtime Database

有关如何在项目中使用 Realtime Database 的更多信息,请参阅 Firebase 文档。

Storage

有关如何使用 Storage 的更多信息,请参阅 Firebase 文档。

Firebase Storage 示例

了解如何在 Expo 项目中使用 Firebase Storage,我们有相应示例。

管理 Firebase 项目的 API 密钥

有关在 Firebase 项目中管理 API Key 和唯一标识符的更多信息。

从 Expo Firebase 包迁移到 React Native Firebase

有关将 expo-firebase-analytics 或 expo-firebase-recaptcha 包迁移到 React Native Firebase 的更多信息。

使用 React Native Firebase

React Native Firebase 通过将 Android 和 iOS 的原生 SDK 封装为 JavaScript API,提供对原生代码的访问。 每个 Firebase 服务都以模块形式提供,可以作为依赖项添加到你的项目中。例如,auth 模块提供对 Firebase Authentication 服务的访问。

何时使用 React Native Firebase

在以下情况下,你可以考虑使用 React Native Firebase:

  • 你的应用需要访问 Firebase JS SDK 不支持的 Firebase 服务,例如 Dynamic LinksCrashlytics 等。 有关原生 SDK 提供的额外功能的更多信息,请参阅 React Native Firebase 文档
  • 你想在应用中使用原生 SDK。
  • 你有一个已经配置好 React Native Firebase 的裸 React Native 应用,但正在迁移到使用 Expo SDK。
  • 你想在应用中使用 Firebase Analytics
从 Expo Firebase 包迁移?

如果你的项目之前使用过 expo-firebase-analyticsexpo-firebase-recaptcha 包,你可以迁移到 React Native Firebase 库。有关更多信息,请参阅 Firebase 迁移指南

注意事项

React Native Firebase 需要 自定义原生代码,无法与 Expo Go 一起使用

安装并初始化 React Native Firebase

1

安装 expo-dev-client

由于 React Native Firebase 需要自定义原生代码,你需要在项目中安装 expo-dev-client 库。 它允许你使用 Config plugins 配置 React Native Firebase 所需的任何原生代码,而无需自己编写原生代码。

要安装 expo-dev-client,请在项目中运行以下命令:

Terminal
npx expo install expo-dev-client

2

安装 React Native Firebase

要使用 React Native Firebase,必须安装 @react-native-firebase/app 模块。该模块为其他所有模块提供核心功能。 它还会通过 config plugin 在项目中添加自定义原生代码。你可以使用以下命令安装它:

Terminal
npx expo install @react-native-firebase/app

此时,你必须遵循 React Native Firebase 文档 中的说明,因为其中涵盖了使用该库配置项目所需的全部步骤。

一旦你在项目中配置好了 React Native Firebase 库,就返回本指南,继续了解下一步如何运行你的项目。

3

运行项目

如果你使用的是 EAS Build,可以创建并在设备上安装开发构建。在创建开发构建之前,你不需要先在本地运行项目。 有关创建开发构建的更多信息,请参阅安装开发构建部分。

在本地运行项目?

如果你想在本地运行项目,你的机器上需要同时安装并配置好 Android Studio 和 Xcode。有关更多信息,请参阅本地应用开发指南。

如果某个 React Native Firebase 模块需要自定义原生配置步骤,你必须将其作为 plugin 添加到 app 配置文件中。然后,要在本地运行项目,请在执行 npx expo run 命令之前先运行 npx expo prebuild --clean 命令以应用原生更改。

下一步

配置好 React Native Firebase 库后,你就可以在 Expo 项目中使用它提供的任何模块。

React Native Firebase 文档

有关安装和使用 React Native Firebase 的某个模块的更多信息,我们建议你查看其文档。