Vai al contenuto

Firebase Google Login su iOS

GitHub

Questa guida ti aiuterà a integrare Google Sign-In con Firebase Authentication su iOS. Assumo che tu abbia già completato la configurazione generale di Firebase Google.

  1. Vai alla panoramica del tuo progetto su console.cloud.google.com

    Panoramica progetto Firebase
  2. Clicca sul Add app pulsante

    Pulsante Aggiungi app in Firebase Pulsante Aggiungi app in Firebase
  3. Seleziona iOS

    Aggiungi il pulsante App iOS in Firebase
  4. Compila la prima parte del modulo

    1. Compila il Apple bundle ID
      1. Apri Xcode per la tua app usando npx cap open ios
      2. Fai doppio clic su App Target dell'app nel project navigator di Xcode
      3. Assicurati di essere nella Targets -> App sezione Targets di Xcode con l'App selezionata
      4. Trova il tuo Bundle Identifier campo Bundle Identifier nelle impostazioni del progetto Xcode
      5. Copia il Bundle Identifier e incollalo nella console Firebase Aggiungi il campo App iOS Bundle ID in Firebase
    2. Clicca sul Register app pulsante Pulsante di registrazione App iOS in Firebase
  5. Salta il Download config file passaggio

    Aggiungi il pulsante Skip Download per l'app iOS in Firebase
  6. Salta il Add firebase SDK passaggio

    Firebase Aggiungi App iOS Salta Download Firebase SDK Pulsante
  7. Salta il Add initialization code passaggio

    Firebase Aggiungi App iOS Salta Aggiunta Inizializzazione Code Pulsante
  8. Clicca sul Continue to console pulsante

    Firebase Aggiungi App iOS Vai alla Console Pulsante
  9. Ottieni il tuo client ID iOS e il tuo YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. Vai alla Google Cloud Console su console.cloud.google.com

    2. Trova il tuo progetto

      1. Clicca sul selettore del progetto Selettore Progetto Google Cloud Console
      2. Cerca il tuo progetto inserendo il nome esatto del progetto Firebase e cliccaci sopra. Nel mio caso è sociallogin-tutorial-app. Progetto Selettore Progetto Firebase
    3. Apri la barra di ricerca e apri credentials

      1. Apri la barra di ricerca Barra di ricerca Google Cloud Console
      2. Cerca credentials and click on the APIs and Services quello (numero 2 nello screenshot) Ricerca Credenziali Google Cloud Console
    4. Clicca sul iOS client for [YOUR_APP_ID] (auto created by Google Service) uno. Nel mio caso, è sociallogin-tutorial-app.

      ID cliente iOS delle credenziali di Google Cloud Console
    5. Copia il Client ID così come il iOS URL scheme. Questi saranno rispettivamente i tuoi iOSClientId e YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Copia l'iOS Client ID dalle credenziali di Google Cloud Console
  10. Recupera il tuo web client ID

    1. Torna alla console di Firebase e vai su Build -> Authentication Menu Firebase Authentication
    2. Clicca sul Sign-in method pulsante Pulsante Sign-in Method di Firebase Authentication
    3. Clicca sul Google provider Metodo di accesso Google con Firebase Authentication
    4. Clicca sul Web SDK configuration pulsante Pulsante di configurazione Web SDK del metodo di accesso Firebase Authentication
    5. Copia il Web client ID. Questo sarà il tuo webClientId nel initialize metodo del plugin. Web Client ID per la configurazione Web SDK di Firebase Authentication
  11. Modifica l'Info.plist della tua app

    1. Apri Xcode e trova il Info.plist file

      file Info.plist nel navigatore del progetto Xcode
    2. Clicca col tasto destro su questo file e aprilo come sorgente code

      Menu contestuale con l'opzione Open As Source Code
    3. In fondo al tuo Plist file, vedrai un </dict> tag

      Tag di chiusura dict nel file Info.plist
    4. Inserisci il seguente frammento subito prima del tag di chiusura </dict> tag

      Info.plist con URL schemes code inserito prima del tag di chiusura dict
      <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 il YOUR_DOT_REVERSED_IOS_CLIENT_ID con il valore copiato al punto 9 (l'iOS URL scheme)

      Info.plist con il reversed client ID inserito negli URL schemes
  12. Cambia il YOUR_IOS_CLIENT_ID con l'iOS Client ID che hai copiato al passaggio 9

  13. Salva il file con Command + S

  14. Modifica il AppDelegate.swift

    1. Apri l'AppDelegate

      file AppDelegate.swift nel navigatore del progetto Xcode
    2. Inserisci import GoogleSignIn all'inizio del file

      AppDelegate.swift con l'import di GoogleSignIn aggiunto
    3. Trova il func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) funzione

      Funzione application openURL originale in AppDelegate
    4. Modifica la funzione in questo modo

      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)
      }
      Funzione application openURL modificata con gestione GoogleSignIn
    5. Salva il file con Command + S

  15. Utilizzo del login Google nella tua app

    A questo punto, sei pronto a usare il login Google nella tua app. Usa invece authUtils.ts file dell'app di esempio per l'autenticazione con Google.

L'utente verrà creato automaticamente in Firebase Auth al primo accesso

Se l'autenticazione si blocca o fallisce:

  • Verifica che l' idToken audience corrisponda al tuo Firebase web client ID
  • Controlla che Google Sign-In sia abilitato nella Firebase Console
  • Assicurati che Info.plist abbia i corretti URL schemes e GIDClientID
  • Verifica che iOSServerClientId corrisponda al tuo web client ID
  • Consulta l' app di esempio code come riferimento

Se stai usando Firebase Google Login su iOS per pianificare i flussi di autenticazione e account, collegandolo a Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli sull'implementazione dell'autenticazione a due fattori.