Я использую Cordova FirebaseX Plugin для проверки телефонных номеров для входа пользователя в мое приложение Ioni c 4 android. Ниже кода введите пользователя, если проверочный код (OTP) совпадает с OTP, отправленным firebase.
this.firebaseX.verifyPhoneNumber(res => {
console.log(res['verificationId']);
if (res['instantVerification']) {
if(awaitingSms){
awaitingSms = false;
// the Android device used auto-retrieval to extract and submit the verification code in the SMS so dismiss user input UI
dismissUserPromptToInputCode();
}
signInWithCredential(res);
}
else {
awaitingSms = true;
promptUserToInputCode()
.then(function(userEnteredCode){
awaitingSms = false;
res['code'] = userEnteredCode; // set the user-entered verification code on the credential object
signInWithCredential(res);
});
}
}, function(error) {
console.error("Failed to verify phone number: " + JSON.stringify(error));
}, number, timeOutDuration);
Вышеупомянутый метод перестал работать со вчерашнего дня на моем телефоне ASUS ROG II android. Я мог видеть, что validId в объекте res остается тем же самым независимо от номера телефона, введенного в моем ASUS ROG II, из-за которого я не могу получить OTP от firebase. Я проверил код на других android устройствах, и ID-верификации в объекте res различается для каждого телефонного номера, следовательно, устройство получает OTP от firebase.
Что приводит к тому, что VerificationId остается неизменным на моем ASUS ROG II. Что мне делать, чтобы ASUS ROG II получал OTP?
EDIT
Я мог найти несертифицированный тег на моем телефоне ASUS ROG II в консоли Firebase. ![enter image description here](https://i.stack.imgur.com/9KOes.png)
Может кто-нибудь, пожалуйста, дайте мне знать, что вызвало это и как мне преодолеть?