Как получить UID в соответствии с этим PhoneNumber при регистрации в Swift - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть registerButton и otpButton для успешной регистрации в приложении. При нажатии кнопки registerButton я отправляю otp на этот зарегистрированный номер телефона. после проверки otp в otpButton, человек успешно зарегистрировался, и я получу uid.

. Теперь я хочу проверить, зарегистрирован ли пользователь во время регистрации или нет ... для этого я сохранил uid в otpButton .. и получение идентификатора пользователя в registerButton, чтобы проверить, не равен ли значение идентификатора пользователя, а затем показать сообщение с предупреждением ... но здесь все время, включая нового пользователя, я также получаю недавно зарегистрированного пользователя. Почему?

Как проверить, является ли пользовательуже зарегистрированы или нет с их номером телефона.

сохранение UID в otpButton:

do{
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
print("the json of otppppppppp \(json)")
DispatchQueue.main.async {
    if (self.otpTextField.text == String(self.otpField ?? 12)){
        print("registration successfullllll...")
        let mobileNum = json["mobile_number"] as! [String : Any]
        self.regUid = mobileNum["id"] as? String
        print("otp uid \(String(describing: self.regUid))")

        DispatchQueue.main.async {
            KeychainWrapper.standard.set(self.regUid!, forKey: "regUid")
        }
        print("the otp uid keywrap \(KeychainWrapper.standard.set(self.regUid!, forKey: "regUid"))")

        let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
        self.present(loginVC, animated: true)
    }
}
}

получение UID, чтобы проверить, если пользователь уже зарегистрирован или нет

do{
let userId: String? = KeychainWrapper.standard.string(forKey: "regUid")
print("reg userid \(userId)")
if userId != nil{
    DispatchQueue.main.async {
        AlertFun.ShowAlert(title: "Title", message: "user exist", in: self)
    }
}
else{
    let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
    print("the json regggggggggggis \(json)")
    let phNum = json["mobile_number"] as? Int
    let status = json["status"] as? String
    self.otpField = json["otp"] as? Int
}
}

Пожалуйста,помогите мне проверить, существует ли пользователь во время регистрации в соответствии с uid.

1 Ответ

0 голосов
/ 05 ноября 2019

использовал номер мобильного телефона вместо regUid в качестве ключа цепочки для ключей

do{
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
print("the json of otppppppppp \(json)")
DispatchQueue.main.async {
    if (self.otpTextField.text == String(self.otpField ?? 12)){
        print("registration successfullllll...")
        let mobileNum = json["mobile_number"] as! [String : Any]
        self.regUid = mobileNum["id"] as? String
        print("otp uid \(String(describing: self.regUid))")

        DispatchQueue.main.async {
            KeychainWrapper.standard.set(self.regUid!, forKey: mobileNum)
        }
        print("the otp uid keywrap \(KeychainWrapper.standard.set(self.regUid!, forKey: mobileNum))")

        let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
        self.present(loginVC, animated: true)
    }
}
}

let mobileNumber = ""  // set mobile number
do{
let userId: String? = KeychainWrapper.standard.string(forKey: mobileNumber)
print("reg userid \(userId)")
if userId != nil{
    DispatchQueue.main.async {
        AlertFun.ShowAlert(title: "Title", message: "user exist", in: self)
    }
}
else{
    let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
    print("the json regggggggggggis \(json)")
    let phNum = json["mobile_number"] as? Int
    let status = json["status"] as? String
    self.otpField = json["otp"] as? Int
}
}
...