跳过内容

iOS 上 Firebase Google 登录

本指南将帮助您在iOS上将Google Sign-In与Firebase Authentication集成。假设您已经完成了相关步骤。 Firebase Google 通用设置.

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

    Firebase 项目概览
  2. 点击 Add app Firebase 添加应用按钮

    Firebase 添加应用按钮 Firebase 添加应用按钮
  3. 选择 iOS

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

    1. 填写 Apple bundle ID
      1. 打开 Xcode 并在您的应用中使用 npx cap open ios
      2. 双击 Xcode 项目导航器中的 App 目标 App 确保您处于
      3. Capgo Targets -> App 在 Xcode 中的 Targets 部分,选择 App
      4. 找到 Bundle Identifier 在 Xcode 项目设置中的 Bundle Identifier 字段
      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 控制台项目选择器
      2. 通过您的 Firebase 项目的准确名称搜索您的项目并点击它。我的情况是 sociallogin-tutorial-app. Firebase 项目选择器项目
    3. 打开搜索栏 credentials

      1. 打开搜索栏 Google Cloud 控制台搜索栏
      2. credentials 中搜索并点击 APIs and Services 截图中第2个 Google Cloud Console Credentials Search
    4. 点击 iOS client for [YOUR_APP_ID] (auto created by Google Service) 截图中第2个。我的情况是 sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. 复制 Client ID 以及 iOS URL scheme。这将分别是你的 iOSClientIdYOUR_DOT_REVERSED_IOS_CLIENT_ID.

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

    1. 返回 Firebase 控制台并转到 Build -> Authentication Firebase 身份验证菜单
    2. 点击 Sign-in method 按钮 Firebase Authentication Sign-in Method Button
    3. 点击 Google 服务提供商 Firebase Authentication Sign-in Method Google 服务提供商
    4. 点击 Web SDK configuration 按钮 Firebase Authentication Sign-in Method Web SDK 配置按钮
    5. 复制 Web client ID. 这将是你的 webClientIdinitialize 插件的 方法。配置项。Firebase Authentication Sign-in Method Web SDK 配置 Web Client ID
  11. 修改您的应用程序的 Info.plist

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

      Info.plist 文件在 Xcode 项目导航器中
    2. 右键单击此文件并以源代码 code 打开

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

      Info.plist 文件中的关闭字典标签
    4. 在关闭 </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 方案

      Info.plist 中的实际反转客户端 ID 在 URL 方案中被插入
  12. 步骤 9 中复制的 iOS 客户端 ID YOUR_IOS_CLIENT_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 示例应用程序中的文件以使用Google进行身份验证。

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

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

  • 验证 idToken 您的Firebase web客户端ID与
  • 检查 Firebase 控制台中是否启用了 Google Sign-In
  • 确保 Info.plist 中的 URL schemes 和 GIDClientID 与您的 web 客户端 ID 匹配
  • 验证 iOSServerClientId 与您的 web 客户端 ID 匹配
  • 查看示例应用 __CAPGO_KEEP_0__ example app code 继续使用 Firebase Google Login on iOS

iOS 中从 Firebase Google Login 继续

如果您正在使用

Firebase Google Login on iOS 来规划身份验证和帐户流程,连接它以实现身份验证和帐户流程 连接它以实现身份验证和帐户流程 使用 @capgo/capacitor-social-login 为原生能力在使用 @capgo/capacitor-social-login, @capgo/capacitor-social-login 为实现细节在 @capgo/capacitor-social-login, @capgo/capacitor-passkey 为实现细节在 @capgo/capacitor-passkey, @capgo/capacitor-native-biometric 为实现细节在 @capgo/capacitor-native-biometric, 和 双因素认证 为实现细节在双因素认证.