Проверка подлинности Firebase повторно отправляет код подтверждения в iOS - PullRequest
0 голосов
/ 13 апреля 2020

Как я могу отправить код подтверждения подлинности номера телефона с помощью firebase api?

Что я пробовал:

//Receiving verfication id and request for verification code
PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationID, error) in
  if let error = error {
    self.showMessagePrompt(error.localizedDescription)
    return
  }
}

let credential = PhoneAuthProvider.provider().credential(
    withVerificationID: verificationID,
    verificationCode: verificationCode)

//Verify verification code
Auth.auth().signIn(with: credential) { (authResult, error) in
  if let error = error {
    let authError = error as NSError
    return
  }
}

1 Ответ

0 голосов
/ 13 апреля 2020

Вызовите метод requestOtp () при повторном нажатии кнопки OTP.

import FirebaseAuth

func requestOtp() {
        let phNo = "Your phone number"
        PhoneAuthProvider.provider().verifyPhoneNumber(phNo, uiDelegate: nil) { (verificationID, error) in
            if let error = error {
                print(error.localizedDescription)
                return
            }
            // Sign in using the verificationID and the code sent to the user
            // ...
            UserDefaults.standard.set(verificationID, forKey: "authVerificationID")
        }
}

.

Проверьте код с помощью Auth:

func verifyNumberWith(verificationCode: String) {
        let verificationID = UserDefaults.standard.string(forKey: "authVerificationID")
        let credential = PhoneAuthProvider.provider().credential(
            withVerificationID: verificationID ?? "",
            verificationCode: verificationCode)

        Auth.auth().signIn(with: credential) { (authResult, error) in
            //Do your actions. 
        }
    }

Если вы столкнулись с какой-либо проблемой в приведенный выше код, пожалуйста, дайте мне знать в комментарии.

Рад помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...