简体   繁体   中英

phone authentication using firebaseUI ios swift

i'm ios fresher. i want to retrieve phone number with country code from the default firebase phone authentication screen.

This is default screen that firebase provides. how can i retrieve country code & phone number on verify buttonClick that is enter by the user and how can i get verify buttonClick event? Is there any library provided function to get buttonClick?

i am stuck here

   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)
                }
            } 
     }

this code open phone number login screen for me, bt after providing phone no. when i click to the verify button i have to pass user's phone no. in bellow code to send opt on users mobile, bt i don't know how can i get verify buttonClick event & how can i retrieve phone no. & country code that user input in the phone authentication screen.

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

Please also explain me right flow of verification.

Why dont you use the Firebase methods to access the phone number once the tocken is verified?

Access the tocken and verify the credibility and after that you can use decodedTocken.phone_number property . Use below to access the phone number

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

Maybe after you access the phone number you can use the string and break down the country code, just a sugesstion, take a look at the below described answer with how to verify the phone number as well

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM