Passer au contenu

Connexion Google Firebase sur iOS

Ce guide vous aidera à intégrer la connexion Google avec Firebase Authentication sur iOS. Je suppose que vous avez déjà terminé la configuration générale de Firebase Google.

  1. Accédez à l’aperçu de votre projet sur console.cloud.google.com

    Firebase Project Overview
  2. Cliquez sur le bouton Add app

    Firebase Add App Button Firebase Add App Button
  3. Sélectionnez iOS

    Firebase Add App iOS Button
  4. Remplissez la première partie du formulaire

    1. Remplissez le Apple bundle ID
      1. Ouvrez Xcode à votre application en utilisant npx cap open ios
      2. Double-cliquez sur App App target in Xcode project navigator
      3. Assurez-vous que vous êtes sur Targets -> App Targets section in Xcode with App selected
      4. Trouvez votre Bundle Identifier Bundle Identifier field in Xcode project settings
      5. Copiez le Bundle Identifier et collez-le dans la console Firebase Firebase Add App iOS Bundle ID Field
    2. Cliquez sur le bouton Register app Firebase Add App iOS Register Button
  5. Passez l’étape Download config file

    Firebase Add App iOS Skip Download Button
  6. Passez l’étape Add firebase SDK

    Firebase Add App iOS Skip Download Firebase SDK Button
  7. Passez l’étape Add initialization code

    Firebase Add App iOS Skip Add Initialization Code Button
  8. Cliquez sur le bouton Continue to console

    Firebase Add App iOS Continue to Console Button
  9. Obtenez votre iOS client ID et votre YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. Allez sur Google Cloud Console à console.cloud.google.com

    2. Trouvez votre projet

      1. Cliquez sur le sélecteur de projet Google Cloud Console Project Selector
      2. Recherchez votre projet par le nom exact de votre projet Firebase et cliquez dessus. Dans mon cas, c’est sociallogin-tutorial-app. Firebase Project Selector Project
    3. Ouvrez la barre de recherche et ouvrez credentials

      1. Ouvrez la barre de recherche Google Cloud Console Search Bar
      2. Recherchez credentials et cliquez sur celui des APIs and Services (numéro 2 sur la capture d’écran) Google Cloud Console Credentials Search
    4. Cliquez sur le iOS client for [YOUR_APP_ID] (auto created by Google Service). Dans mon cas, c’est sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. Copiez le Client ID ainsi que le iOS URL scheme. Ce sera respectivement votre iOSClientId et YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Google Cloud Console Credentials iOS Client ID Copy
  10. Obtenez votre web client ID

    1. Retournez à la console Firebase et allez dans Build -> Authentication Firebase Authentication Menu
    2. Cliquez sur le bouton Sign-in method Firebase Authentication Sign-in Method Button
    3. Cliquez sur le fournisseur Google Firebase Authentication Sign-in Method Google Provider
    4. Cliquez sur le bouton Web SDK configuration Firebase Authentication Sign-in Method Web SDK Configuration Button
    5. Copiez le Web client ID. Ce sera votre webClientId dans la méthode initialize du plugin. Firebase Authentication Sign-in Method Web SDK Configuration Web Client ID
  11. Modifiez le fichier Info.plist de votre application

    1. Ouvrez Xcode et trouvez le fichier Info.plist

      Info.plist file in Xcode project navigator
    2. Faites un clic droit sur ce fichier et ouvrez-le en tant que code source

      Right-click menu showing Open As Source Code option
    3. En bas de votre fichier Plist, vous verrez une balise </dict>

      Closing dict tag in Info.plist file
    4. Insérez le fragment suivant juste avant la balise de fermeture </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. Remplacez le YOUR_DOT_REVERSED_IOS_CLIENT_ID par la valeur copiée à l’étape 9 (le iOS URL scheme)

      Info.plist with actual reversed client ID inserted in URL schemes
  12. Remplacez le YOUR_IOS_CLIENT_ID par l’iOS Client ID que vous avez copié à l’étape 9

  13. Enregistrez le fichier avec Command + S

  14. Modifiez le AppDelegate.swift

    1. Ouvrez le AppDelegate

      AppDelegate.swift file in Xcode project navigator
    2. Insérez import GoogleSignIn en haut du fichier

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

      Original application openURL function in AppDelegate
    4. Modifiez la fonction pour qu’elle ressemble à ceci

      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. Enregistrez le fichier avec Command + S

  15. Utilisation de la connexion Google dans votre application

    À cette étape, vous êtes prêt à utiliser la connexion Google dans votre application. Veuillez utiliser le fichier authUtils.ts de l’application exemple pour vous authentifier avec Google.

L’utilisateur sera automatiquement créé dans Firebase Auth lors de la première connexion

Si l’authentification se bloque ou échoue :

  • Vérifiez que l’audience du idToken correspond à votre web client ID Firebase
  • Vérifiez que la connexion Google est activée dans la Console Firebase
  • Assurez-vous que Info.plist contient les bons schémas d’URL et GIDClientID
  • Vérifiez que iOSServerClientId correspond à votre web client ID
  • Consultez le code de l’application exemple pour référence