Saltar al contenido

Inicio de sesión de Google de Firebase en iOS

GitHub

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

  1. Vaya a la vista general de su proyecto en console.cloud.google.com

    Vista general del proyecto de Firebase
  2. Haga clic en el Add app botón

    Botón de agregar aplicación de Firebase Botón de agregar aplicación de Firebase
  3. Seleccionar iOS

    Botón de agregar aplicación de Firebase para iOS
  4. Rellena la primera parte del formulario

    1. Rellena el Apple bundle ID
      1. Abre Xcode en tu aplicación usando npx cap open ios
      2. Haz doble clic en App Objetivo de la aplicación en el navegador de proyectos de Xcode
      3. Asegúrate de que estás en Targets -> App Sección de objetivos en Xcode con la aplicación seleccionada
      4. Encuentra tu Bundle Identifier Campo de Identificador de Conjunto en la configuración del proyecto de Xcode
      5. Copia el Bundle Identifier y pégalo en la consola de Firebase Campo de Identificador de Conjunto de Firebase para iOS
    2. Haz clic en el Register app botón Botón de registro de Firebase para iOS
  5. Saltarse el Download config file paso

    Agregar App de Firebase iOS Saltarse el botón de descarga
  6. Saltarse el Add firebase SDK paso

    Agregar App de Firebase iOS Saltarse el botón de descarga de Firebase SDK
  7. Saltarse el Add initialization code paso

    Agregar App de Firebase iOS Saltarse la inicialización del botón Code
  8. Haga clic en el Continue to console botón

    Agregar App de Firebase iOS Continuar a la consola de botones
  9. Obtén tu identificador de cliente de iOS y tu YOUR_DOT_REVERSED_IOS_CLIENT_ID

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

    2. Encuentra tu proyecto

      1. Haz clic en el selector de proyecto Selector de Proyecto de la Consola de Google Cloud
      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. Selector de Proyecto de Firebase Project
    3. Abre la barra de búsqueda y abre credentials

      1. Abre la barra de búsqueda Barra de Búsqueda de la Consola de Google Cloud
      2. Busca por credentials Haga clic en el APIs and Services uno (número 2 en la captura de pantalla) Búsqueda de credenciales de Google Cloud Console
    4. Haga clic en el iOS client for [YOUR_APP_ID] (auto created by Google Service) uno. En mi caso, es sociallogin-tutorial-app.

      ID de cliente de credenciales de Google Cloud Console iOS
    5. Copie el Client ID así como el iOS URL scheme. Esto será respectivamente su iOSClientId y YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Identificador de cliente de Google Cloud Console iOS Copiar
  10. Obtén tu ID de cliente web

    1. Vuelve a la consola de Firebase y ve a Build -> Authentication Menú de autenticación de Firebase
    2. Haz clic en el Sign-in method botón Botón de método de inicio de sesión de autenticación de Firebase
    3. Haz clic en el Google proveedor Inicio de sesión con Firebase Authentication Método de proveedor de Google
    4. Haz clic en el Web SDK configuration botón Inicio de sesión con Firebase Authentication Método de configuración de Web SDK Botón de configuración
    5. Copia el Web client IDEsto será tu webClientId en el initialize método del plugin. Inicio de sesión con Firebase Authentication Método de configuración de Web SDK ID de cliente de la aplicación web
  11. Modifica la información de tu aplicación en Info.plist

    1. Abra Xcode y encuentre el archivo Info.plist archivo

      archivo Info.plist en el navegador de proyectos de Xcode
    2. Haga clic con el botón derecho en este archivo y abra como fuente code

      Menú de clic derecho mostrando la opción Abrir como fuente Code
    3. En la parte inferior de su Plist archivo, verá un </dict> etiqueta

      Etiqueta de cierre de diccionario en el archivo Info.plist
    4. Inserte el siguiente fragmento justo antes de la etiqueta de cierre </dict> Info.plist con esquemas de URL __CAPGO_KEEP_0__ insertados antes de la etiqueta de cierre

      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. Cambiar a YOUR_DOT_REVERSED_IOS_CLIENT_ID al valor copiado en el paso 9 (el esquema de URL de iOS)

      Info.plist con el ID del cliente real insertado en los esquemas de URL
  12. Cambiar a YOUR_IOS_CLIENT_ID al ID del cliente de iOS que copió en el paso 9

  13. Guardar el archivo con Command + S

  14. Modifique el AppDelegate.swift

    1. Abrir el AppDelegate

      Archivo AppDelegate.swift en el navegador de proyectos de Xcode
    2. Inserte import GoogleSignIn en la parte superior del archivo

      AppDelegate.swift con el import de GoogleSignIn agregado
    3. Encuentre el func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) función

      Función de aplicación original openURL en AppDelegate
    4. Modifique 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)
      }
      Función de aplicación modificada de openURL con manejo de GoogleSignIn
    5. Guardar el archivo con Command + S

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

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

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

Si la autenticación se atasca o falla:

  • Verificar que idToken el audiencia coincida con tu ID de cliente web de Firebase
  • Comprueba que el inicio de sesión de Google esté habilitado en la consola de Firebase
  • Asegúrese de que Info.plist tenga los esquemas de URL correctos y GIDClientID
  • Verificar iOSServerClientId coincida con su ID del cliente web
  • Revisar el ejemplo de aplicación code para referencia

Si está utilizando Google Login de Firebase en iOS para planificar la autenticación y los flujos de cuenta, conéctelo con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social, @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social, @capgo/capacitor-clave-de-llave para el detalle de implementación en @capgo/capacitor-clave-de-llave, @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Autenticación de dos factores para el detalle de implementación en Autenticación de dos factores.