使用 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 应用中使用 Authentication、Firestore、Realtime Database 和 Storage 等服务。
何时使用 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
2
在项目中初始化 SDK
要在 Expo 项目中初始化 Firebase 实例,你必须创建一个配置对象,并将其传递给从 firebase/app 模块导入的 initializeApp() 方法。
配置对象需要 API 密钥和其他唯一标识符。要获取这些值,你需要在 Firebase 项目中注册一个 Web 应用。你可以在 Firebase 文档 中找到这些说明。
在获得 API 密钥和其他标识符后,你可以通过在项目根目录或你存放配置文件的任何其他目录中创建一个新的 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 数据库的更多信息,请参阅 Firebase 文档。
有关如何在项目中使用 Realtime Database 的更多信息,请参阅 Firebase 文档。
有关如何使用 Storage 的更多信息,请参阅 Firebase 文档。
了解如何在 Expo 项目中使用 Firebase Storage,我们有相应示例。
有关在 Firebase 项目中管理 API Key 和唯一标识符的更多信息。
有关将 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 Links、Crashlytics 等。 有关原生 SDK 提供的额外功能的更多信息,请参阅 React Native Firebase 文档。
- 你想在应用中使用原生 SDK。
- 你有一个已经配置好 React Native Firebase 的裸 React Native 应用,但正在迁移到使用 Expo SDK。
- 你想在应用中使用 Firebase Analytics。
从 Expo Firebase 包迁移?
如果你的项目之前使用过 expo-firebase-analytics 和 expo-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,请在项目中运行以下命令:
- npx expo install expo-dev-client2
安装 React Native Firebase
要使用 React Native Firebase,必须安装 @react-native-firebase/app 模块。该模块为其他所有模块提供核心功能。
它还会通过 config plugin 在项目中添加自定义原生代码。你可以使用以下命令安装它:
- npx expo install @react-native-firebase/app此时,你必须遵循 React Native Firebase 文档 中的说明,因为其中涵盖了使用该库配置项目所需的全部步骤。
一旦你在项目中配置好了 React Native Firebase 库,就返回本指南,继续了解下一步如何运行你的项目。
下一步
配置好 React Native Firebase 库后,你就可以在 Expo 项目中使用它提供的任何模块。
有关安装和使用 React Native Firebase 的某个模块的更多信息,我们建议你查看其文档。