Vai al contenuto

Login Google con Firebase su iOS

Questa guida ti aiuterà a integrare l’accesso con Google utilizzando Firebase Authentication su iOS. Suppongo che tu abbia già completato la configurazione generale di Firebase Google.

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

    Firebase Project Overview
  2. Fai clic sul pulsante Add app

    Firebase Add App Button Firebase Add App Button
  3. Seleziona iOS

    Firebase Add App iOS Button
  4. Compila la prima parte del modulo

    1. Compila il campo Apple bundle ID
      1. Apri Xcode nella tua app utilizzando npx cap open ios
      2. Fai doppio clic su App App target in Xcode project navigator
      3. Assicurati di essere su Targets -> App Targets section in Xcode with App selected
      4. Trova il tuo Bundle Identifier Bundle Identifier field in Xcode project settings
      5. Copia il Bundle Identifier e incollalo nella console Firebase Firebase Add App iOS Bundle ID Field
    2. Fai clic sul pulsante Register app Firebase Add App iOS Register Button
  5. Salta il passaggio Download config file

    Firebase Add App iOS Skip Download Button
  6. Salta il passaggio Add firebase SDK

    Firebase Add App iOS Skip Download Firebase SDK Button
  7. Salta il passaggio Add initialization code

    Firebase Add App iOS Skip Add Initialization Code Button
  8. Fai clic sul pulsante Continue to console

    Firebase Add App iOS Continue to Console Button
  9. Ottieni il tuo iOS client ID 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. Fai clic sul selettore del progetto Google Cloud Console Project Selector
      2. Cerca il tuo progetto con il nome esatto del tuo progetto Firebase e fai clic su di esso. Nel mio caso, è sociallogin-tutorial-app. Firebase Project Selector Project
    3. Apri la barra di ricerca e cerca credentials

      1. Apri la barra di ricerca Google Cloud Console Search Bar
      2. Cerca credentials e fai clic su quello di APIs and Services (numero 2 nello screenshot) Google Cloud Console Credentials Search
    4. Fai clic su iOS client for [YOUR_APP_ID] (auto created by Google Service). Nel mio caso, è sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. Copia il Client ID e l’iOS URL scheme. Questi saranno rispettivamente il tuo iOSClientId e YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Google Cloud Console Credentials iOS Client ID Copy
  10. Ottieni il tuo web client ID

    1. Torna alla console Firebase e vai su Build -> Authentication Firebase Authentication Menu
    2. Fai clic sul pulsante Sign-in method Firebase Authentication Sign-in Method Button
    3. Fai clic sul provider Google Firebase Authentication Sign-in Method Google Provider
    4. Fai clic sul pulsante Web SDK configuration Firebase Authentication Sign-in Method Web SDK Configuration Button
    5. Copia il Web client ID. Questo sarà il tuo webClientId nel metodo initialize del plugin. Firebase Authentication Sign-in Method Web SDK Configuration Web Client ID
  11. Modifica il file Info.plist della tua app

    1. Apri Xcode e trova il file Info.plist

      Info.plist file in Xcode project navigator
    2. Fai clic destro su questo file e aprilo come codice sorgente

      Right-click menu showing Open As Source Code option
    3. In fondo al tuo file Plist, vedrai un tag </dict>

      Closing dict tag in Info.plist file
    4. Inserisci il seguente frammento appena prima del tag di chiusura </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 YOUR_DOT_REVERSED_IOS_CLIENT_ID con il valore copiato nel passaggio 9 (l’iOS URL scheme)

      Info.plist with actual reversed client ID inserted in URL schemes
  12. Cambia YOUR_IOS_CLIENT_ID con l’iOS Client ID che hai copiato nel passaggio 9

  13. Salva il file con Command + S

  14. Modifica l’AppDelegate.swift

    1. Apri l’AppDelegate

      AppDelegate.swift file in Xcode project navigator
    2. Inserisci import GoogleSignIn all’inizio del file

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

      Original application openURL function 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)
      }
      Modified application openURL function with GoogleSignIn handling
    5. Salva il file con Command + S

  15. Utilizzo del login Google nella tua app

    A questo punto, sei pronto per utilizzare il login Google nella tua app. Utilizza il file authUtils.ts dell’app di esempio per autenticarti con Google.

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

Se l’autenticazione si blocca o fallisce:

  • Verifica che l’audience dell’idToken corrisponda al tuo Firebase web client ID
  • Controlla che l’accesso con Google sia abilitato nella Console Firebase
  • Assicurati che Info.plist abbia gli URL schemes corretti e GIDClientID
  • Verifica che iOSServerClientId corrisponda al tuo web client ID
  • Rivedi il codice dell’app di esempio come riferimento