Я использую аутентификацию телефона с помощью облачного firestore. В firestore db я сохраняю номер телефона пользователя и uid. Вот код, который я пробовал для входа в мобильный номер:
  @IBAction func signUp(_ sender: Any) {
    // dismiss keyboard
    view.endEditing(true)   
    if sendOTP == false {
    let mobileNumber = "+91" + phoneNumberTextField.text!
    self.Userdefaults.set(mobileNumber, forKey: "mobileNumber")
    print("mobileNumber::::\(mobileNumber)")
    sendOTPCode()
    sendOTP = true
    } else {
        let codestring = OTPCodeTextField.text
        if codestring?.count == 6 {
            loginusingOTP(OTPtext: codestring!)
        } else {
            print("Enter 6 digit code")
        }
    }
func sendOTPCode() {
    let mymobilenumber = Userdefaults.string(forKey: "mobileNumber")
    PhoneAuthProvider.provider().verifyPhoneNumber(mymobilenumber!) { (verificationID, error) in
            self.Userdefaults.set(verificationID, forKey: "authVerificationID")
            if error != nil
            {
                print ("insde SendCode, there is error")
                print("error: \(String(describing: error?.localizedDescription))")
            } else {
                print ("code sent")
                self.phoneNumberTextField.allowsEditingTextAttributes = false
            }
    }
}
func loginusingOTP(OTPtext: String) {
    let db = Firestore.firestore()
    let verificationID = self.Userdefaults.string(forKey: "authVerificationID")
    let credential: PhoneAuthCredential = PhoneAuthProvider.provider().credential(withVerificationID: verificationID!,
                                                                                  verificationCode: OTPtext)
    Auth.auth().signIn(with: credential)
    {
        (user, error) in
        if error != nil
        {
            print("error: \(String(describing: error?.localizedDescription))")
        }
        else if user != nil
        {
            print("Phone number: \(String(describing: user?.phoneNumber))")
            let userInfo = user?.providerData[0]
            print("Provider ID: \(String(describing: userInfo?.providerID))")
            var _: DocumentReference? = nil
            print("currentUser:::\(String(describing: currentUser))")
            db.collection("users").document(currentUser!).setData([
                "User_Phone_number": user?.phoneNumber as Any,
                "uid": currentUser as Any
            ]) { err in
                if let err = err {
                    print("Error writing document: \(err)")
                } else {
                    print("Document successfully written!")
                    if PrefsManager.sharedinstance.isFirstTime == false{
                        let when = DispatchTime.now() + 0
                        DispatchQueue.main.asyncAfter(deadline: when) {
                            self.performSegue(withIdentifier: "signUpToTabBar", sender: nil)
                        }
                    }else{
                        let when = DispatchTime.now() + 0
                        DispatchQueue.main.asyncAfter(deadline: when) {
                            let storyboard = UIStoryboard(name: "Start", bundle: nil)
                            let initialViewController = storyboard.instantiateViewController(withIdentifier: "onboardvc")
                            self.present(initialViewController, animated: true, completion: nil)
                        }
                    }
                }
            }
        } else {
            print("error::::::")
        }
    }
}
Вход в систему пользователя - первый пользователь вводит номер телефона, а затем отбирает при отправке otp, тогда пользователь вводит otp-код, успешно вступил в систему. После первого входа пользователя пользователю необходимо заполнить страницу сведений о пользователе, а затем перейти на домашнюю страницу. Если его уже зарегистрированный пользователь, после успешного входа пользователя, пользователь перенаправит на главный экран страницу пользователя.
Мой вопрос заключается в том, что теперь пользователь вводит логин каждый раз, чтобы войти в приложение, я хочу, чтобы пользователь автоматически входил в систему без входа в систему каждый раз, если пользователь не вышел из системы. Как проверить уже зарегистрированный пользовательский UID или телефон в облачном firestore для пользователя или нового пользователя.
Любая помощь очень ценит PLS...