Bonjour,
j'essaie de mettre en place dans mon application une authentification par numéro de téléphone, en passant pour cela par Firebase. J'ai bien réussi a faire la connexion, je peux me connecter, sauf que quand je me déconnecte, je ne peux plus me reconnecter ensuite, le SMS ne s'envoie plus. Comme si quelque chose empêchait FirebaseAuth à envoyer à nouveau un SMS.
Je peux cependant changé d'Iphone, et là, ça marche. Comme si quelques chose restait en mémoire.
Merci a ceux qui prendront le temps de me répondre.
Ma fonction pour envoyé le SMS :
Lorsque le bug se produit, il n'y a que I am start qui s'écrit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 private func sendVerificationSMS() { print("I am start") PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationID, error) in print("I am 1") if let error = error { print("error sms verif: " + error.localizedDescription) return } print("I am 2") UserDefaults.standard.set(verificationID, forKey: "authVerificationID") print("I am end") // Sign in using the verificationID and the code sent to the user // ... } //UserDefaults.standard.set(verificationID, forKey: "authVerificationID") // Do any additional setup after loading the view. }
Ma fonction pour se connecter
et enfin ma fonction pour se deconnecter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 @IBAction func confirm(_ sender: Any) { let verificationID = UserDefaults.standard.string(forKey: "authVerificationID") let credential = PhoneAuthProvider.provider().credential(withVerificationID: verificationID!, verificationCode: passTextField.text!) Auth.auth().signInAndRetrieveData(with: credential) { (authResult, error) in if error != nil { print("wrong password") return } let ref = Database.database().reference() ref.child("users").observeSingleEvent(of: .value, with: { (snapshot) in //si l'utilisateur existe print("currentUser.uid = " + Auth.auth().currentUser!.uid) if snapshot.hasChild(Auth.auth().currentUser!.uid) { print("user exist") self.performSegue(withIdentifier: "signIn", sender: self) } else {//sinon ajouter les details print("user doesn't exist") self.performSegue(withIdentifier: "addDetailsSegue", sender: self) } }) } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @IBAction func disconnect(_ sender: Any) { let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() self.performSegue(withIdentifier: "logOut", sender: self) } catch let signOutError as NSError { print("Error signing out : %@", signOutError) } }
Partager