Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
Firebase no muestra la página de registro de microsoft.com en Swift/iOS

Estoy implementando la autenticación de Firebase usando la clase OAuthProvider para iniciar sesión con una cuenta personal de Microsoft.

He seguido estas instrucciones: https://firebase.google.com/docs/auth/ios/microsoft-oauth?authuser=0

Sin embargo, cuando uso OAuthProvider de Firebase SDK, no aparece la página de inicio de sesión de Microsoft; en realidad, getCredentialWith no invoca nada.

Cuando uso GoogleAuthProvider, todo funciona bien y Firebase SDK muestra la página de inicio de sesión de Google.

 let provider = OAuthProvider(providerID: "microsoft.com") provider.scopes = ["files.readwrite.appfolder", "user.read"] provider.getCredentialWith(nil, completion: { credential, error in if let error = error { os_log("Firebase Error: %@", type: .fault, error as CVarArg) return } if (credential != nil) { Auth.auth().signInAndRetrieveData(with: credential!, completion: { authResult, error in if let error = error { os_log("Firebase Error: %@", type: .fault, error as CVarArg) return } }) } })
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Declarar en alcance global como a continuación

 var provider: OAuthProvider? var authMicrosoft: Auth? @IBAction func buttonTapped(_ sender: Any) { provider = OAuthProvider(providerID: "microsoft.com") provider?.customParameters = [ "prompt": "consent", "login_hint": "", ] provider?.scopes = ["mail.read", "calendars.read"] provider?.getCredentialWith(nil ) { credential, error in if error != nil { // Handle error. } print(credential?.provider) if let x = credential { self. authMicrosoft?.signIn(with: x) { authResult, error in if error != nil { // Handle error. } print(authResult?.additionalUserInfo?.profile) print(authResult?.user.providerID) } } else { } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Parece que define un proveedor localmente. Si bien la llamada getCredentialWith(_:completion) se ejecuta de forma asíncrona, es posible que su función local ya haya terminado de ejecutarse y que ARC ya haya desasignado el proveedor.

Para resolver su problema, es posible que deba retener específicamente el puntero del proveedor en algún lugar, por ejemplo, en su controlador de vista como una propiedad o ivar, y de esa manera el proveedor se puede crear/reciclar cuando su controlador de vista se inicializa/desasigna.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda