使用FirebaseUI进行电话身份验证iOS Swift

时间:2019-11-25 04:31:10

标签: ios swift firebase firebase-authentication

我的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
          // ...
        }

也请向我解释正确的验证流程。

1 个答案:

答案 0 :(得分:0)

验证令牌后,为什么不使用Firebase方法访问电话号码?

访问令牌并验证可信度,然后可以使用decodedTocken.phone_number属性。在下面使用以访问电话号码

admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
 var uid = decodedToken.phone_number;
 // ...
}).catch(function(error) {
  // Handle error
});

也许在访问电话号码后,您可以使用字符串并分解国家/地区代码,仅作为建议,然后查看下面介绍的答案以及如何验证电话号码

https://stackoverflow.com/a/45227042/10021979