fonctionne sur certaines choses, mais pour une raison quelconque, je ne peux pas comprendre comment vérifier si l'adresse e-mail proposée par les utilisateurs a déjà été prise. J'ai essayé d'appeler .fetchProvidersForEmail
comme suggéré dans d'autres questions depuis un certain temps, mais pour une raison quelconque, cela ne marchera pas. De plus, je suis très vert en ce qui concerne les gestionnaires de complétion, donc toute critique constructive serait la bienvenue. Donc, pour l'instant, les parties de mon code qui se rapportent à ce sont:Comment vérifier si une adresse e-mail est déjà utilisée Firebase
import UIKit
import Firebase
class LoginViewController: UIViewController {
var reply : Bool = true
@IBOutlet weak var emailTxt: UITextField!
@IBAction func nextScreen(sender: UIButton) {
print(emailCheck(emailTxt.text!))
}
func emailCheck(input : String)->Bool{
let pullEmails = FIRAuth.auth()!.fetchProvidersForEmail(input, completion:{
result,error in
var decision : Bool = true
if error == "nil" {
print(error)
self.reply = true
}else{
print(error)
self.reply = false
}
})
return reply
}
}
Alors ce qui se passe avec ceci est que la réponse imprime toujours true
, probablement parce que je explicitement défini à au sommet. Dans les deux cas, c'est presque comme si le gestionnaire d'achèvement n'attendait pas d'être complété avant d'avoir la valeur returns
. J'ai essayé de comprendre comment les utiliser, ainsi que AsyncTasks
, mais je me demandais s'il y avait une erreur simple que j'ai faite ici qui pourrait résoudre ce problème. Merci à tous!
Merci d'avoir posté ce message! C'est moche, mais il doit y avoir un moyen d'accomplir ceci/en quelque sorte /. Je vous remercie de partager! –