我的ios更新了。我想从默认的Firebase电话身份验证屏幕中检索带有国家/地区代码的电话号码。
This是Firebase提供的默认屏幕。如何在用户输入的verify buttonClick上检索国家代码和电话号码,以及如何获取verify buttonClick事件?是否提供任何库来获取buttonClick?
我被困在这里
fileprivate func startLogin() {
self.authUI?.delegate = self
self.authStateListenerHandle = self.auth?.addStateDidChangeListener { (auth, user) in
if user != nil {
print(user)
}else {
do{
try self.auth?.signOut()
print("singning out done")
}catch{
print("Error while signing out!")
}
let phoneProvider = FUIPhoneAuth(authUI: self.authUI!)
self.authUI?.providers = [phoneProvider]
phoneProvider.signIn(withPresenting: self.rootController!, phoneNumber: nil)
}
}
}
此代码在提供电话号码后为我打开电话号码登录屏幕,bt。当我单击验证按钮时,我必须通过用户的电话号码。在下面的代码中,以向用户发送选择权,bt,我不知道如何获取验证buttonClick事件以及如何获取电话号码。用户在电话验证屏幕中输入的国家和地区代码。
PhoneAuthProvider.provider().verifyPhoneNumber(("need to pass phone number with country code here")!, uiDelegate: nil) { (verificationID, error) in
if let error = error {
// self.showMessagePrompt(error.localizedDescription)
return
}
// Sign in using the verificationID and the code sent to the user
// ...
}
也请向我解释正确的验证流程。
答案 0 :(得分:0)
验证令牌后,为什么不使用Firebase方法访问电话号码?
访问令牌并验证可信度,然后可以使用decodedTocken.phone_number
属性。在下面使用以访问电话号码
admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
var uid = decodedToken.phone_number;
// ...
}).catch(function(error) {
// Handle error
});
也许在访问电话号码后,您可以使用字符串并分解国家/地区代码,仅作为建议,然后查看下面介绍的答案以及如何验证电话号码