我的输出控制台中正在打印一个本地化的说明,上面写着:“无法获得验证:可选(如果禁用应用程序委托模糊处理,则需要将UIApplicationDelegate收到的远程通知转发到FIRAuth的canHandleNotificaton:方法。” )”
尽管如此,即使我在手机中收到了OTP信息,也需要重新验证以进行验证,但并没有带我进入下一页,我们需要在该页面上验证收到的otp。
我的代码在收到OTP之前可以正常工作,但是在此之后,它显示了我需要输入号码的同一页面。
我的viewcontroller.swift具有以下代码:
.ForMember(entity => entity.Active, options => options.MapFrom((dto, entity) => dto.Id == 0 ? true : entity.Active))
和我的otpverificationviewcontroller.swift具有以下代码:
@IBAction func mobileNumberSubmitButton(_ sender: Any) {
guard let phonenumber = mobileNumberText.text else {return}
PhoneAuthProvider.provider().verifyPhoneNumber(phonenumber, uiDelegate: nil) {(verificationid, error) in
if error == nil{
print(verificationid)
guard let verify = verificationid else {return}
self.userdefault.set("verify", forKey: "verifyID")
self.userdefault.synchronize()
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "OTPVerificationID") as! OTPVerificationViewController
viewController.verifyid = verificationid!
self.navigationController?.pushViewController(viewController, animated: true)
}else{
print("unable to get verification:", error?.localizedDescription)
}
}
}
}
我希望mobileNumberSubmitButton动作可以推送otpverification页面,以便验证OTPcode。
有人可以给我一些解决方案吗?
答案 0 :(得分:0)
在主线程上执行以下操作:
DispatchQueue.main.async{
let viewController =
self.storyboard?.instantiateViewController(withIdentifier: "OTPVerificationID") as! OTPVerificationViewController
viewController.verifyid = verificationid!
self.navigationController?.pushViewController(viewController, animated: true)
}