跳过内容

Firebase iOS Google 登录

GitHub

本指南将帮助您在 iOS 上将 Google Sign-In 与 Firebase Authentication 集成。假设您已经完成了 Firebase Google 的基本设置。 基本设置.

设置步骤

Setup Steps
  1. 前往您的项目概览 console.cloud.google.com

    Firebase 项目概览
  2. 点击 Add app button

    注意 注意
  3. Select iOS

    Firebase 添加 App iOS 按钮
  4. 填写表单的第一部分

    1. 填写 Apple bundle ID
      1. 打开使用您的应用程序的 Xcode npx cap open ios
      2. 双击 Xcode 项目导航器中的 App 在 Xcode 项目导航器中双击
      3. 确保您在 Xcode 中选中 Targets -> App 在 Xcode 中的 Targets 部分
      4. 在 Xcode 项目设置中找到 Bundle Identifier 在 Xcode 项目设置中找到
      5. 复制 Bundle Identifier 并在 Firebase 控制台中粘贴 Firebase 添加 App iOS Bundle ID 字段
    2. 点击 Register app 按钮 Firebase 添加 App iOS 注册按钮
  5. 跳过 Download config file 步骤

    Firebase 添加 App iOS 跳过下载按钮
  6. 跳过 Add firebase SDK 步骤

    Firebase 添加 App iOS 跳过下载 Firebase SDK 按钮
  7. 跳过 Add initialization code 步骤

    Firebase 添加 App iOS 跳过添加初始化 Code 按钮
  8. 点击 Continue to console 按钮

    Firebase 添加 App iOS 继续到控制台按钮
  9. 获取您的 iOS 客户端 ID 和您的 YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. 前往 Google Cloud 控制台 console.cloud.google.com

    2. 找到您的项目

      1. 点击项目选择器 Google Cloud Console 项目选择器
      2. 通过 Firebase 项目的准确名称搜索您的项目并点击它。在我的情况下,它是 sociallogin-tutorial-app. Firebase 项目选择器项目
    3. 打开搜索栏并打开 credentials

      1. 打开搜索栏 Google Cloud Console 搜索栏
      2. 搜索 credentials 并点击 APIs and Services 第 2 项(截图中的第 2 项) Google Cloud Console 凭据搜索
    4. 点击 iOS client for [YOUR_APP_ID] (auto created by Google Service) 1. 在我的情况下, sociallogin-tutorial-app.

      Google 云平台控制台凭据 iOS 客户端 ID
    5. 复制 Client ID 以及 iOS URL scheme. 这将分别是您的 iOSClientId 和 YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Google Cloud Console 凭据 iOS Client ID 复制
  10. 获取您的 Web 客户端 ID

    1. 返回 Firebase 控制台并转到 Build -> Authentication Firebase 身份验证菜单
    2. 点击 Sign-in method 按钮 Firebase 身份验证登录方式按钮
    3. 点击 Google 提供者 Firebase 身份验证登录方式 Google 提供者
    4. 点击 Web SDK configuration button Firebase 身份验证登录方法 Web SDK 配置按钮
    5. 复制 Web client ID将会是你的 webClientId 在 initialize 该插件的方法 Firebase 认证登录方法 Web SDK 配置 Web Client ID
  11. 修改你的应用的 Info.plist

    1. 打开 Xcode 并找到 Info.plist 文件

      Info.plist 文件在 Xcode 项目导航器
    2. Right click this file and open it as source code

      右键菜单显示 Open As Source Code 选项
    3. 在文件底部 Plist 你会看到一个 </dict> 标签

      Info.plist 文件中的 Closing dict 标签
    4. 在 Info.plist 文件中的 Closing dict 标签之前 </dict> 标签

      Info.plist中包含 URL 方案 code,在关闭字典标签之前插入
      <key>CFBundleURLTypes</key>
      <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
      </array>
      </dict>
      </array>
      <key>GIDClientID</key>
      <string>YOUR_IOS_CLIENT_ID.apps.googleusercontent.com</string>
    5. 复制到剪贴板 YOUR_DOT_REVERSED_IOS_CLIENT_ID 将

      改为步骤 9 中复制的 iOS URL 方案值(iOS URL Scheme)
  12. 更改为 YOUR_IOS_CLIENT_ID 将其更改为您在第 9 步中复制的 iOS 客户端 ID

  13. 以 Command + S

  14. 修改 AppDelegate.swift

    1. 打开 AppDelegate

      AppDelegate.swift 文件在 Xcode 项目导航器中
    2. 插入 import GoogleSignIn 文件顶部

      AppDelegate.swift文件中添加了GoogleSignIn导入
    3. 找到 func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) 函数

      AppDelegate中的原始应用openURL函数
    4. 修改函数使其看起来像这样

      func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
      // Called when the app was launched with a url. Feel free to add additional processing here,
      // but if you want the App API to support tracking app url opens, make sure to keep this call
      var handled: Bool
      handled = GIDSignIn.sharedInstance.handle(url)
      if handled {
      return true
      }
      return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
      }
      修改后的应用openURL函数,包含GoogleSignIn处理
    5. 以 Command + S

  15. 在您的应用中使用Google登录

    在这个步骤中,您已经准备好在应用中使用Google登录。 请使用 authUtils.ts firebase/google/ios/的示例应用程序文件以与Google进行身份验证。

用户将在首次登录时自动在Firebase Auth中创建。

故障排除

故障排除

如果身份验证卡住或失败:

  • 验证您的 idToken 与Firebase Web Client ID匹配
  • 检查Firebase控制台中是否启用了Google Sign-In
  • 确保Info.plist中包含正确的URL方案和GIDClientID
  • 验证 iOSServerClientId 与您的Web Client ID匹配
  • 查看 example app code 用于参考

从 Firebase Google Login on iOS 中继续

标题:从 Firebase Google Login on iOS 中继续

如果您正在使用 Firebase iOS Google 登录 来规划身份验证和帐户流程,连接它到 使用 @capgo/capacitor-social-login 为在使用 @capgo/capacitor-social-login 中的原生能力 @capgo/capacitor-社交登录 用于在 @capgo/capacitor-social-login 中的实现细节 @capgo/capacitor-passkey 为 @capgo/capacitor-passkey 的实现细节 @capgo/capacitor-native-biometric 为 @capgo/capacitor-native-biometric 的实现细节, 和 双因素认证 为双因素认证的实现细节