Saltar al contenido

Inicio de sesión de Google con Firebase en iOS

Esta guía te ayudará a integrar el inicio de sesión de Google con Firebase Authentication en iOS. Asumo que ya has completado la configuración general de Google con Firebase.

  1. Ve a la descripción general de tu proyecto en console.cloud.google.com

    Firebase Project Overview
  2. Haz clic en el botón Add app

    Firebase Add App Button Firebase Add App Button
  3. Selecciona iOS

    Firebase Add App iOS Button
  4. Completa la primera parte del formulario

    1. Completa el Apple bundle ID
      1. Abre Xcode en tu aplicación usando npx cap open ios
      2. Haz doble clic en App App target in Xcode project navigator
      3. Asegúrate de estar en Targets -> App Targets section in Xcode with App selected
      4. Encuentra tu Bundle Identifier Bundle Identifier field in Xcode project settings
      5. Copia el Bundle Identifier y pégalo en la consola de Firebase Firebase Add App iOS Bundle ID Field
    2. Haz clic en el botón Register app Firebase Add App iOS Register Button
  5. Omite el paso Download config file

    Firebase Add App iOS Skip Download Button
  6. Omite el paso Add firebase SDK

    Firebase Add App iOS Skip Download Firebase SDK Button
  7. Omite el paso Add initialization code

    Firebase Add App iOS Skip Add Initialization Code Button
  8. Haz clic en el botón Continue to console

    Firebase Add App iOS Continue to Console Button
  9. Obtén tu ID de cliente de iOS y tu YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. Ve a la consola de Google Cloud en console.cloud.google.com

    2. Encuentra tu proyecto

      1. Haz clic en el selector de proyectos Google Cloud Console Project Selector
      2. Busca tu proyecto por el nombre exacto de tu proyecto de Firebase y haz clic en él. En mi caso, es sociallogin-tutorial-app. Firebase Project Selector Project
    3. Abre la barra de búsqueda y abre credentials

      1. Abre la barra de búsqueda Google Cloud Console Search Bar
      2. Busca credentials y haz clic en el de APIs and Services (número 2 en la captura de pantalla) Google Cloud Console Credentials Search
    4. Haz clic en el iOS client for [YOUR_APP_ID] (auto created by Google Service). En mi caso, es sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. Copia el Client ID así como el iOS URL scheme. Estos serán respectivamente tu iOSClientId y YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Google Cloud Console Credentials iOS Client ID Copy
  10. Obtén tu ID de cliente web

    1. Vuelve a la consola de Firebase y ve a Build -> Authentication Firebase Authentication Menu
    2. Haz clic en el botón Sign-in method Firebase Authentication Sign-in Method Button
    3. Haz clic en el proveedor Google Firebase Authentication Sign-in Method Google Provider
    4. Haz clic en el botón Web SDK configuration Firebase Authentication Sign-in Method Web SDK Configuration Button
    5. Copia el Web client ID. Este será tu webClientId en el método initialize del plugin. Firebase Authentication Sign-in Method Web SDK Configuration Web Client ID
  11. Modifica el Info.plist de tu aplicación

    1. Abre Xcode y encuentra el archivo Info.plist

      Info.plist file in Xcode project navigator
    2. Haz clic derecho en este archivo y ábrelo como código fuente

      Right-click menu showing Open As Source Code option
    3. Al final de tu archivo Plist, verás una etiqueta </dict>

      Closing dict tag in Info.plist file
    4. Inserta el siguiente fragmento justo antes de la etiqueta de cierre </dict>

      Info.plist with URL schemes code inserted before closing dict tag
      <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. Cambia el YOUR_DOT_REVERSED_IOS_CLIENT_ID al valor copiado en el paso 9 (el esquema de URL de iOS)

      Info.plist with actual reversed client ID inserted in URL schemes
  12. Cambia el YOUR_IOS_CLIENT_ID al ID de cliente de iOS que copiaste en el paso 9

  13. Guarda el archivo con Command + S

  14. Modifica el AppDelegate.swift

    1. Abre el AppDelegate

      AppDelegate.swift file in Xcode project navigator
    2. Inserta import GoogleSignIn en la parte superior del archivo

      AppDelegate.swift with GoogleSignIn import added
    3. Encuentra la función func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:])

      Original application openURL function in AppDelegate
    4. Modifica la función para que se vea así

      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)
      }
      Modified application openURL function with GoogleSignIn handling
    5. Guarda el archivo con Command + S

  15. Usando el inicio de sesión de Google en tu aplicación

    En este paso, estás listo para usar el inicio de sesión de Google en tu aplicación. Por favor usa el archivo authUtils.ts de la aplicación de ejemplo para autenticarte con Google.

El usuario se creará automáticamente en Firebase Auth en el primer inicio de sesión

Si la autenticación se bloquea o falla:

  • Verifica que la audiencia del idToken coincida con tu ID de cliente web de Firebase
  • Verifica que el inicio de sesión de Google esté habilitado en la consola de Firebase
  • Asegúrate de que Info.plist tenga los esquemas de URL correctos y GIDClientID
  • Verifica que iOSServerClientId coincida con tu ID de cliente web
  • Revisa el código de la aplicación de ejemplo como referencia