У меня есть приложение ioni c, которое имеет логин Gmail и аутентификацию телефона. Сценарий такой: если пользователь новый, то он перенаправляется на другую страницу, где выполняется аутентификация телефона.
Я использовал этот плагин для аутентификации телефона https://github.com/chemerisuk/cordova-plugin-firebase-authentication.
Этот плагин автоматически проверяет OTP. Нам нужно только позвонить onAuthStateChanged()
для выполнения успешных операций после автоматической проверки OTP. Но теперь проблема в том, что вход в Gmail выполняется только сейчас, состояние изменилось и выполняется условие успеха onAuthStateChanged ().
Но я хочу назвать onAuthStateChanged()
условие успеха только после авторизации телефона.
Как я могу это сделать?
Заранее спасибо Вот мой код
Страница входа в Gmail
this.afauth.auth.signInWithCredential(googleCredential).then(response => {
if(response.additionalUserInfo.isNewUser) {
this.router.navigate(['details'])
}
})
Страница авторизации телефона
constructor(private firebaseAuthentication : FirebaseAuthentication,public afauth: AngularFireAuth){
this.afauth.auth.onAuthStateChanged(function(user){
if(user) {
console.log("otp verified")
// update phone number
// save in database
}
else {
console.log("otp not valid")
}
})
}
Send(mobile_no){
console.log(mobile_no)
this.mobile ="+91" + mobile_no
console.log(this.mobile)
this.firebaseAuthentication.verifyPhoneNumber(this.mobile, 30000).then(credential =>{
if(credential){
console.log(credential)
this.verificationid = credential
this.display_otp = true
}
})
}
enter_otp(otp){
console.log(otp)
this.firebaseAuthentication.signInWithVerificationId(this.verificationid, otp).then(user =>{
if(user) {
console.log(user)
}
else {
console.log("no user")
}
})
}