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 :
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.
    }
Lorsque le bug se produit, il n'y a que I am start qui s'écrit.

Ma fonction pour se connecter
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)
                }
            })
            
        }
    }
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
@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)
        }
    }