Error de inicio de sesión de Google en Firebase: "Discrepancia de audiencia"

0

Implementé el inicio de sesión de Google a través de Firebase y seguí la documentación adecuada: https://firebase.google.com/docs/auth/ios/firebaseui

Estoy usando,

- FirebaseUI/Auth (8.5.1):
    - Firebase/Auth (~> 6.0)
    - GoogleUtilities/UserDefaults
  - FirebaseUI/Google (8.5.1):
    - FirebaseUI/Auth
    - GoogleSignIn (~> 5.0)

COCOAPODS: 1.9.3

XCode - 12

Entonces, mi Appdelegate.swiftcontendría el siguiente código en didFinishLaunchingWithOptions...

FirebaseApp.configure()

Y presentando la interfaz de usuario de inicio de sesión cuando el usuario presiona un botón especial en el controlador de vista de inicio de sesión usando el siguiente código,

if let authController = authUI?.authViewController() {
            self.authController = authController
            self.present(authController, animated: true, completion: nil)
        }

LoginViewController.swift tendría el siguiente código en viewDidload()

authUI?.delegate = self
        let providers: [FUIAuthProvider] = [
            FUIGoogleAuth()
        ]
        
        authUI?.providers = providers

donde authUIse declara como propiedad para LoginViewController=>let authUI = FUIAuth.defaultAuthUI()

Solo agregué Google SignIn por ahora, por lo que solo se agregó un proveedor aquí.

Ahora, cuando se presenta mi interfaz de usuario de autenticación de inicio de sesión, se muestra el botón Iniciar sesión de Google y puedo iniciar sesión en mi cuenta de Google, pero cuando didSignInWith authDataResultse ejecuta desde FUIAuthDelegate, me doy cuenta de que recibo un mensaje de error al iniciar sesión correctamente en la cuenta de Google .

Error Domain=FUIAuthErrorDomain Code=2 "(null)" UserInfo={FUIAuthErrorUserInfoProviderIDKey=google.com, NSUnderlyingError=0x600000a08720 {Error Domain=org.openid.appauth.general Code=-15 "Audience mismatch" UserInfo={NSLocalizedDescription=Audience mismatch}}}

¿Hay algo que me esté perdiendo?

Ya configuré el esquema de URL info.plisty no tengo ni idea de cómo se genera este tipo de error.

Además, como una actualización de @ frank-van-puffelen,

He confirmado que se agregó o no la info.plist adecuada .

Mi Info.Plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CLIENT_ID</key>
    <string>847792004435-gdisqis038je5q8rr1on4ti7df09nvht.apps.googleusercontent.com</string>
    <key>REVERSED_CLIENT_ID</key>
    <string>com.googleusercontent.apps.847792004435-gdisqis038je5q8rr1on4ti7df09nvht</string>
    <key>API_KEY</key>
    <string>AIzaSyDRrYM2h1wOEdKHZtOM-M904oBwrXnaO3E</string>
    <key>GCM_SENDER_ID</key>
    <string>847792004435</string>
    <key>PLIST_VERSION</key>
    <string>1</string>
    <key>BUNDLE_ID</key>
    <string>com.Speare.StashAlpha</string>
    <key>PROJECT_ID</key>
    <string>stash-demo-11379</string>
    <key>STORAGE_BUCKET</key>
    <string>stash-demo-11379.appspot.com</string>
    <key>IS_ADS_ENABLED</key>
    <false></false>
    <key>IS_ANALYTICS_ENABLED</key>
    <false></false>
    <key>IS_APPINVITE_ENABLED</key>
    <true></true>
    <key>IS_GCM_ENABLED</key>
    <true></true>
    <key>IS_SIGNIN_ENABLED</key>
    <true></true>
    <key>GOOGLE_APP_ID</key>
    <string>1:847792004435:ios:867e5fb8113b83b48f55a6</string>
    <key>DATABASE_URL</key>
    <string>https://stash-demo-11379.firebaseio.com</string>
</dict>
</plist>

Captura de pantalla del proyecto al que está destinado el inicio de sesión,

ingrese la descripción de la imagen aquí

Podemos comprobar claramente aquí las coincidencias de ID del proyecto info.plist, así como en la pantalla de inicio de sesión.

Ahora en la consola de Firebase, si verificamos, el ID del proyecto coincide y debajo está el info.plistbotón de descarga desde donde puedo tomar la última info.plist.

ingrese la descripción de la imagen aquí

Avísame si hay algo que podamos confirmar que info.plist no coincide con el proyecto de destino.

2
  • Hola Paresh. ¿Hiciste algún progreso en esto? Traté de ayudar a continuación. ¿Revisaste eso? Si mi respuesta fue útil, haga clic en el botón de voto a favor (▲) a la izquierda. Si respondió a su pregunta, haga clic en la marca de verificación (✓) para aceptarla. De esa manera, los demás sabrán que ha sido (lo suficientemente) ayudado. Consulte también ¿Qué debo hacer cuando alguien responde a mi pregunta? 9 de enero a las 23:09
  • Gracias @FrankvanPuffelen. He editado mi publicación para incluir otros detalles que quizás desee verificar. 11 de enero a las 11:46
1

Este mensaje de error generalmente significa que está intentando iniciar sesión en un proyecto diferente al que se acuñó el token. Por lo tanto, es posible que desee verificar si tiene el info.plist para el proyecto correcto y si ha configurado su inicio de sesión de OAuth en ese mismo proyecto.

2
  • Disculpas @FrankvanPuffelen por no revisar este mensaje ya que estaba en otras prioridades. Gracias por tu ayuda. Edité mis preguntas y agregué info.plist y algunas capturas de pantalla del proceso de inicio de sesión donde podemos confirmar que info.plist es para el proyecto correcto. Avísame si hay otros consejos aquí. 11 de ene a las 11:44
  • Había creado un nuevo proyecto en Firebase y agregué una nueva aplicación de iOS en este proyecto y agregué info.plist en mi proyecto de iOS que resolvió el problema. 19 de ene a las 5:48