This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

使用 Google 身份验证

编辑页面

一份关于在 Expo 项目中使用 react-native-nitro-google-signin 或 @react-native-google-signin/google-signin 集成 Google 身份验证的指南。


您可以使用以下任一库在您的 Expo 应用中集成 Google 身份验证:

这两个库都提供原生登录按钮,并支持对用户进行身份验证(以及获取使用 Google API 的授权)。由于它们需要自定义原生代码,您需要在 应用配置 中使用 配置插件,并构建一个开发版。

选择库

在这两个库之间进行选择时,请考虑以下差异:

  • react-native-nitro-google-signin 包含对 Android Credential Manager 的支持。
  • @react-native-google-signin/google-signinAndroid Credential Manager API 作为其付费服务的一部分提供。

本指南提供了如何为您的项目配置该库的信息。

Prerequisites

1 requirement

开发构建

这些库不能在 Expo Go 中使用,因为它们需要自定义原生代码。了解更多关于向应用添加自定义原生代码的信息。

安装

根据你想使用的库选择相应的安装指南:

React Native Nitro Google Sign-In
React Native Google Sign In:Expo 安装说明

为 Android 和 iOS 配置 Google 项目

以下是如何为 Android 和 iOS 配置 Google 项目的说明。

将应用上传到 Google Play 商店

如果您的应用计划在生产环境中运行,我们建议将应用上传到 Google Play 商店。即使您的项目仍在开发中,您也可以将应用提交到商店进行测试。这使您可以在应用通过 EAS 签名进行测试时测试 Google 登录,以及在应用通过 Google Play App Signing 签名用于商店发布时进行测试。要了解有关应用提交流程的更多信息,请按以下顺序查看以下指南:

创建您的第一个 EAS Build
为应用商店构建您的项目
使用 EAS Submit 提交到 Google Play 商店

配置您的 Firebase 或 Google Cloud Console 项目

请参阅库文档以获取更详细的配置指南:

对于 Android,一旦您上传了应用,在 Firebase 或 Google Cloud Console 中配置项目时,系统会要求您提供 SHA-1 证书指纹值。您可以提供两种类型的值:

  • 您构建的 .apk 的指纹(在您的机器上或使用 EAS Build)。您可以在 Google Play Console 的 Release > Setup > App Integrity > Upload key certificate 中找到 SHA-1 证书指纹。
  • 从 Play 商店下载的 生产应用 的指纹。您可以在 Google Play Console 的 Release > Setup > App Integrity > App signing key certificate 中找到 SHA-1 证书指纹。

使用 Firebase

有关如何使用 Firebase 为 Android 和 iOS 配置项目的更多说明:

Firebase(Nitro Google Sign-In)
Firebase(@react-native-google-signin/google-signin)

将 google-services.json 和 GoogleService-Info.plist 上传到 EAS

如果您在 Android 和 iOS 中使用 Firebase 方法(如上文各节所述),您需要确保 google-services.jsonGoogleService-Info.plist 可供 EAS 用于构建应用。您可以将它们提交到代码仓库中,因为这些文件不应包含敏感值;或者您也可以将这些文件视为机密,添加到 .gitignore 中,并使用下面的指南使它们可在 EAS 中使用。

将机密文件上传到 EAS 并在应用配置中使用

使用 Google Cloud Console

当您不使用 Firebase 时,这是配置 Google 项目的另一种方法。

有关如何使用 Google Cloud Console 为 Android 和 iOS 配置 Google 项目的更多说明:

无需 Firebase 的 Expo(Nitro Google Sign-In)
无需 Firebase 的 Expo(@react-native-google-signin/google-signin)