跳过内容

Firebase Google Login on iOS

GitHub

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

设置步骤

设置步骤部分
  1. 前往您的项目概览页面,地址为 console.cloud.google.com

    Firebase 项目概览
  2. 点击 Add app 按钮

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

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

    1. 填写 Apple bundle ID
      1. 打开 Xcode 并在您的应用中 npx cap open ios
      2. 双击 App 在 Xcode 项目导航器中
      3. 确保您在 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 Add App iOS Continue to Console Button
  9. 获取您的iOS客户端ID和您的 YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. 前往Google Cloud Console console.cloud.google.com

    2. 找到您的项目

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

      1. 打开搜索栏 Google Cloud Console 搜索栏
      2. credentials 中搜索并点击 APIs and Services (截图中的第2个) Google Cloud Console Credentials Search
    4. 点击 iOS client for [YOUR_APP_ID] (auto created by Google Service) 。在我的情况下是 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 Provider
    4. 点击 Web SDK configuration 按钮 Firebase Authentication Sign-in Method Web SDK Configuration Button
    5. 复制 Web client ID. 这将是你的 webClientIdinitialize 方法的插件中。 Firebase Authentication Sign-in Method Web SDK Configuration Web Client ID
  11. 修改您的应用程序的 Info.plist

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

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

      右键菜单显示以源代码形式打开 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. 更改为 YOUR_IOS_CLIENT_ID 更改为步骤 9 中复制的 iOS 客户端 ID

  13. Command + S

  14. 修改 AppDelegate.swift

    1. 打开AppDelegate

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

      在AppDelegate.swift文件顶部添加GoogleSignIn import
    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

继续使用 Firebase Google Login on iOS

如果您正在使用 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, 和 双因素认证 为实现细节在双因素认证