Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

267
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!