Firebase 手机认证 SHA1 问题:终极解决指南
2024-03-22 22:25:01
Firebase 手机认证 SHA1 问题及其解决方法
问题概述
在 React Native 应用程序中使用 Firebase 手机认证时,您可能会遇到以下错误:
应用程序无权使用 Firebase Authentication。请验证 Firebase Console 中配置了正确的软件包名称和 SHA-1
这表明 Firebase 尚未为您的应用程序创建相应的 OAuth2 客户端 ID。
潜在原因
通常情况下,当您将新的 SHA1 哈希值添加到 Firebase 控制台中时,系统会自动生成一个 OAuth2 客户端 ID。然而,在某些情况下,此过程可能无法正常工作。
解决方法
您可以手动创建 OAuth2 客户端 ID 来解决此问题。为此,请按照以下步骤操作:
- 登录 Google Cloud Platform。
- 导航到 IAM & Admin > OAuth 客户端 。
- 单击 创建客户端 ID 。
- 选择 Web 应用程序 作为 应用程序类型 。
- 输入一个唯一的 名称 。
- 在 受限 JavaScript 起源 中,输入您的应用程序的 URL。
- 在 授权重定向 URI 中,输入
https://你的域名/__/auth/handler
。 - 单击 创建 。
创建一个 OAuth2 客户端 ID 后,请将客户端 ID 和密钥添加到 Firebase 控制台:
- 导航到 身份验证 > 应用程序 > 您正在使用的应用程序 。
- 在 iOS 设置 或 Android 设置 部分,将客户端 ID 和密钥粘贴到相应的字段中。
- 单击 保存 。
预防措施
为了避免此问题,建议您使用 Android Studio 导出签名证书 SHA1 哈希。为此,请按照以下步骤操作:
- 打开您的 Android Studio 项目。
- 在菜单栏中,单击 Build > Generate Signed Bundle/APK 。
- 选择 Android App Bundle 或 APK ,具体取决于您的需要。
- 在 Key store path 字段中,选择您的 keystore 文件。
- 在 Password 字段中,输入您的 keystore 密码。
- 在 Alias 字段中,输入您的密钥别名。
- 单击 Generate Signed Bundle/APK 。
此过程将生成一个包含应用程序 SHA1 哈希值的文本文件。将此 SHA1 哈希值添加到 Firebase 控制台中。
常见问题解答
1. 我必须为我的应用程序的所有环境创建单独的 OAuth2 客户端 ID 吗?
是,您需要为每个环境(例如开发、暂存和生产)创建单独的 OAuth2 客户端 ID。
2. 我可以手动更新 Firebase Console 中的 OAuth2 客户端 ID 和密钥吗?
是的,您可以手动更新 OAuth2 客户端 ID 和密钥。但是,不建议这样做,因为这可能会导致认证问题。
3. 如何查看我的 Firebase 应用程序的 OAuth2 客户端 ID 和密钥?
转到 Firebase 控制台的 身份验证 > 应用程序 > 您正在使用的应用程序 部分。客户端 ID 和密钥将显示在 iOS 设置 或 Android 设置 部分。
4. 我收到错误“INVALID_APPLICATION”怎么办?
这表明您正在使用的 OAuth2 客户端 ID 和密钥无效或未连接到正确的 Firebase 应用程序。检查客户端 ID 和密钥是否正确,并确保它们已添加到 Firebase 控制台中。
5. 我收到错误“UNAUTHORIZED_DOMAIN”怎么办?
这表明您的应用程序的 URL 未添加到 OAuth2 客户端 ID 的受限 JavaScript 起源。将您的应用程序的 URL 添加到受限 JavaScript 起源列表中。