состояние аутентификации никогда не меняет событие после того, как пользователь вошел в систему с автоматической аутентификацией телефона firebase для android.
поведение на устройстве не android такое, как ожидалось
async signinWithPhone(phoneNumber){
const loading = await this.loadingCtrl.create({
keyboardClose: false,
animated: true,
spinner: 'lines',
backdropDismiss: false,
})
await loading.present()
this.auth.verifyPhoneNumber(phoneNumber, 120000).then(async verificationId => {
loading.dismiss()
const alert = await this.alertCtrl.create({
header: 'Verify phone number',
message: 'Please provide the SMS code you received on your phone.',
inputs: [
{
name: 'code',
type: 'tel',
placeholder: 'SMS Code'
},
],
buttons: [
{
text: 'Cancel',
role: 'cancel',
cssClass: 'secondary',
}, {
text: 'Okay',
handler: (data) => {
loading.present()
this.auth.signInWithVerificationId(verificationId, data.code).then(async res => {
console.log(res);
this.toast.show('Signed in')
this.router.navigate(['home'])
})
}
}
]
});
await alert.present();
}).catch(async err => {
this.toast.show(err, 'danger')
console.log(err);
loading.dismiss()
})
}
это наблюдаемая подписка в состоянии пользователя.
this.auth.onAuthStateChanged().subscribe(user => {
console.log(user)
if(user){
this.user.next(user)
this.router.navigate(['home', 'menu'])
} else{
this.user.next(null)
this.router.navigate(['login'])
}
})
Я не могу найти никакого решения в Интернете, я не очень знаком с тем, как это работает на базовой стороне. заранее спасибо.