Zum Inhalt springen

Firebase Google Login auf iOS

GitHub

Diese Anleitung hilft dir bei der Integration von Google Sign-In mit Firebase Authentication auf iOS. Ich gehe davon aus, dass du die allgemeine Firebase Google-Konfiguration.

  1. Gehe zu deiner Projektübersicht unter console.cloud.google.com

    Firebase-Projektübersicht
  2. Klicke auf Add app Button

    Firebase-Button „App hinzufügen“ Firebase-Button „App hinzufügen“
  3. Wähle iOS

    Firebase App iOS-Button hinzufügen
  4. Fülle den ersten Teil des Formulars aus

    1. Fülle das Apple bundle ID
      1. Öffne Xcode für deine App mit npx cap open ios
      2. Doppelklicke auf App App-Target im Xcode Project Navigator
      3. Stelle sicher, dass du dich im Targets -> App Targets-Bereich in Xcode mit ausgewählter App befindest
      4. Finde dein Bundle Identifier Bundle-Identifier-Feld in den Xcode-Projekteinstellungen
      5. Kopiere die Bundle Identifier und füge sie in der Firebase Console ein Firebase Add App iOS Bundle-ID-Feld
    2. Klicke auf Register app Button Firebase Add App iOS Registrieren-Button
  5. Überspringe den Download config file Schritt

    Firebase Add App iOS Button „Download überspringen“
  6. Überspringe den Add firebase SDK Schritt

    Firebase App für iOS hinzufügen: SDK Button überspringen
  7. Überspringe den Add initialization code Schritt

    Firebase App für iOS hinzufügen: Initialisierung Code Button überspringen
  8. Klicke auf Continue to console Button

    Firebase App für iOS hinzufügen: Weiter zur Console Button
  9. Hol dir deine iOS Client ID und deine YOUR_DOT_REVERSED_IOS_CLIENT_ID

    1. Gehe zur Google Cloud Console unter console.cloud.google.com

    2. Finde dein Projekt

      1. Klicke auf die Projektauswahl Google Cloud Console Projekt-Auswahl
      2. Suche nach deinem Projekt über den exakten Namen deines Firebase-Projekts und klicke darauf. In meinem Fall ist es sociallogin-tutorial-app. Firebase Projekt-Auswahl Projekt
    3. Öffne die Suchleiste und öffne credentials

      1. Suchleiste öffnen Google Cloud Console Suchleiste
      2. Suche nach credentials und klicke auf APIs and Services den Eintrag (Nummer 2 im Screenshot) Google Cloud Console Credentials Suche
    4. Klicke auf iOS client for [YOUR_APP_ID] (auto created by Google Service) eins. In meinem Fall ist es sociallogin-tutorial-app.

      Google Cloud Console Credentials iOS Client ID
    5. Kopiere die Client ID as well as the iOS URL scheme. Das sind jeweils deine iOSClientId und YOUR_DOT_REVERSED_IOS_CLIENT_ID.

      Google Cloud Console Credentials iOS Client ID kopieren
  10. Web-Client-ID abrufen

    1. Gehe zurück zur Firebase Console und navigiere zu Build -> Authentication Firebase Authentication Menü
    2. Klicke auf Sign-in method Button Firebase Authentication Sign-in Button
    3. Klicke auf Google Provider Firebase Authentication Sign-in-Methode mit Google Provider
    4. Klicke auf Web SDK configuration Button Firebase Authentication Sign-in Method Web SDK Konfigurations-Button
    5. Kopiere die Web client ID. Dies wird deine webClientId im initialize Plugin-Methode sein. Firebase Authentication Sign-in Method Web SDK Web Client ID
  11. Ändere die Info.plist deiner App

    1. Öffne Xcode und suche die Info.plist Datei

      Info.plist Datei im Xcode Project Navigator
    2. Rechtsklick auf die Datei und als Source code öffnen

      Rechtsklick-Menü mit der Option Open As Source Code
    3. Ganz unten in deinem Plist Datei siehst du ein </dict> Tag

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

      Info.plist mit URL-Schemes, code vor dem schließenden 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. Ändere den YOUR_DOT_REVERSED_IOS_CLIENT_ID auf den in Schritt 9 kopierten Wert (das iOS URL-Scheme)

      Info.plist mit der tatsächlichen reversed Client ID in den URL-Schemes
  12. Ändere den YOUR_IOS_CLIENT_ID in die iOS Client ID, die du in Schritt 9 kopiert hast

  13. Speichere die Datei mit Command + S

  14. Ändere die AppDelegate.swift

    1. Öffne die AppDelegate

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

      AppDelegate.swift mit hinzugefügtem GoogleSignIn import
    3. Suche den func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) Funktion

      Ursprüngliche application openURL Funktion in AppDelegate
    4. Ändere die Funktion wie folgt

      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)
      }
      Angepasste application openURL Funktion mit GoogleSignIn Handling
    5. Speichere die Datei mit Command + S

  15. Google Login in deiner App nutzen

    Damit ist der Schritt abgeschlossen und du kannst den Google Login in deiner App nutzen. Bitte verwende die authUtils.ts Datei der Beispiel-App für die Authentifizierung mit Google.

Der User wird beim ersten Login automatisch in Firebase Auth erstellt.

If authentication hangs or fails:

  • Prüfe, ob die idToken Audience mit deiner Firebase Web Client ID übereinstimmt
  • Stelle sicher, dass Google Sign-In in der Firebase Console aktiviert ist
  • Prüfe, ob die Info.plist die korrekten URL Schemes und die GIDClientID enthält
  • Verify iOSServerClientId mit deiner Web Client ID übereinstimmt
  • Lies die Beispiel-App code als Referenz

Wenn Sie ... verwenden Firebase Google Login auf iOS um Authentifizierungs- und Account-Flows zu planen, verbinde es mit Mit @capgo/capacitor-social-login für die native Funktion in „Mit @capgo/capacitor-social-login“, @capgo/capacitor-social-login für das Implementierungsdetail in @capgo/capacitor-social-login, @capgo/capacitor-passkey für das Implementierungsdetail in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric für das Implementierungsdetail in @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für das Implementierungsdetail in der Zwei-Faktor-Authentifizierung.