Zum Inhalt springen

Firebase Google Login auf iOS

Dieser Leitfaden hilft Ihnen dabei, Google Sign-In mit Firebase Authentication auf iOS zu integrieren. Ich gehe davon aus, dass Sie die allgemeine Firebase Google Einrichtung bereits abgeschlossen haben.

  1. Gehen Sie zu Ihrer Projektübersicht unter console.cloud.google.com

    Firebase Projektübersicht
  2. Klicken Sie auf die Add app Schaltfläche

    Firebase App hinzufügen Schaltfläche Firebase App hinzufügen Schaltfläche
  3. Wählen Sie iOS

    Firebase App hinzufügen iOS Schaltfläche
  4. Füllen Sie den ersten Teil des Formulars aus

    1. Füllen Sie die Apple bundle ID aus
      1. Öffnen Sie Xcode bei Ihrer App mit npx cap open ios
      2. Doppelklicken Sie auf App App Target im Xcode Projekt-Navigator
      3. Stellen Sie sicher, dass Sie sich bei Targets -> App befinden Targets Bereich in Xcode mit App ausgewählt
      4. Finden Sie Ihre Bundle Identifier Bundle Identifier Feld in Xcode Projekteinstellungen
      5. Kopieren Sie die Bundle Identifier und fügen Sie sie in der Firebase Console ein Firebase App hinzufügen iOS Bundle ID Feld
    2. Klicken Sie auf die Register app Schaltfläche Firebase App hinzufügen iOS Registrieren Schaltfläche
  5. Überspringen Sie den Schritt Download config file

    Firebase App hinzufügen iOS Überspringen Download Schaltfläche
  6. Überspringen Sie den Schritt Add firebase SDK

    Firebase App hinzufügen iOS Überspringen Firebase SDK Schaltfläche hinzufügen
  7. Überspringen Sie den Schritt Add initialization code

    Firebase App hinzufügen iOS Überspringen Initialisierungscode hinzufügen Schaltfläche
  8. Klicken Sie auf die Continue to console Schaltfläche

    Firebase App hinzufügen iOS Weiter zur Console Schaltfläche
  9. Holen Sie sich Ihre iOS-Client-ID und Ihre YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. Gehen Sie zur Google Cloud Console unter console.cloud.google.com

    2. Finden Sie Ihr Projekt

      1. Klicken Sie auf die Projektauswahl Google Cloud Console Projektauswahl
      2. Suchen Sie Ihr Projekt nach dem genauen Namen Ihres Firebase-Projekts und klicken Sie darauf. In meinem Fall ist es sociallogin-tutorial-app. Firebase Projektauswahl Projekt
    3. Öffnen Sie die Suchleiste und öffnen Sie credentials

      1. Öffnen Sie die Suchleiste Google Cloud Console Suchleiste
      2. Suchen Sie nach credentials und klicken Sie auf die APIs and Services Option (Nummer 2 auf dem Screenshot) Google Cloud Console Credentials Suche
    4. Klicken Sie auf iOS client for [YOUR_APP_ID] (auto created by Google Service). In meinem Fall ist es sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. Kopieren Sie die Client ID sowie das iOS URL scheme. Dies werden jeweils Ihre iOSClientId und YOUR_DOT_REVERSED_IOS_CLIENT_ID sein.

      Google Cloud Console Credentials iOS Client ID Kopieren
  10. Holen Sie sich Ihre Web-Client-ID

    1. Gehen Sie zurück zur Firebase Console und gehen Sie zu Build -> Authentication Firebase Authentication Menü
    2. Klicken Sie auf die Sign-in method Schaltfläche Firebase Authentication Anmeldemethode Schaltfläche
    3. Klicken Sie auf den Google Anbieter Firebase Authentication Anmeldemethode Google Anbieter
    4. Klicken Sie auf die Web SDK configuration Schaltfläche Firebase Authentication Anmeldemethode Web SDK Konfiguration Schaltfläche
    5. Kopieren Sie die Web client ID. Dies wird Ihre webClientId in der initialize Methode des Plugins sein. Firebase Authentication Anmeldemethode Web SDK Konfiguration Web Client ID
  11. Ändern Sie die Info.plist Ihrer App

    1. Öffnen Sie Xcode und finden Sie die Info.plist Datei

      Info.plist Datei im Xcode Projekt-Navigator
    2. Rechtsklicken Sie auf diese Datei und öffnen Sie sie als Quellcode

      Rechtsklick-Menü zeigt Als Quellcode öffnen Option
    3. Am Ende Ihrer Plist Datei sehen Sie ein </dict> Tag

      Schließendes dict Tag in Info.plist Datei
    4. Fügen Sie das folgende Fragment direkt vor dem schließenden </dict> Tag ein

      Info.plist mit URL-Schemas-Code vor schließendem dict Tag eingefügt
      <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. Ändern Sie die YOUR_DOT_REVERSED_IOS_CLIENT_ID in den in Schritt 9 kopierten Wert (das iOS URL-Schema)

      Info.plist mit tatsächlicher umgekehrter Client-ID in URL-Schemas eingefügt
  12. Ändern Sie die YOUR_IOS_CLIENT_ID in die iOS-Client-ID, die Sie in Schritt 9 kopiert haben

  13. Speichern Sie die Datei mit Command + S

  14. Ändern Sie die AppDelegate.swift

    1. Öffnen Sie das AppDelegate

      AppDelegate.swift Datei im Xcode Projekt-Navigator
    2. Fügen Sie import GoogleSignIn am Anfang der Datei ein

      AppDelegate.swift mit GoogleSignIn Import hinzugefügt
    3. Finden Sie die func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) Funktion

      Original application openURL Funktion im AppDelegate
    4. Ändern Sie die Funktion so, dass sie folgendermaßen aussieht

      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)
      }
      Geänderte application openURL Funktion mit GoogleSignIn Verarbeitung
    5. Speichern Sie die Datei mit Command + S

  15. Verwendung des Google-Logins in Ihrer App

    An diesem Punkt sind Sie bereit, den Google-Login in Ihrer App zu verwenden. Bitte verwenden Sie die authUtils.ts Datei der Beispiel-App zur Authentifizierung mit Google.

Der Benutzer wird bei der ersten Anmeldung automatisch in Firebase Auth erstellt

Wenn die Authentifizierung hängt oder fehlschlägt:

  • Überprüfen Sie, dass die idToken Zielgruppe mit Ihrer Firebase Web-Client-ID übereinstimmt
  • Prüfen Sie, dass Google Sign-In in der Firebase Console aktiviert ist
  • Stellen Sie sicher, dass die Info.plist die korrekten URL-Schemas und GIDClientID hat
  • Überprüfen Sie, dass iOSServerClientId mit Ihrer Web-Client-ID übereinstimmt
  • Überprüfen Sie den Beispiel-App-Code als Referenz