Я реализовал следующий метод для входа в систему с помощью номера телефона. у меня на службе:
Код: Выделить всё
public async signInWithPhoneNumber(options: SignInWithPhoneNumberOptions,
loading: HTMLIonLoadingElement
): Promise {
try {
console.log("Attempting to sign in with phone number:", options.phoneNumber);
const user = await FirebaseAuthentication.signInWithPhoneNumber(options);
console.log('Sign-in successful');
} catch (error) {
console.error('Error during phone number verification:', error);
} finally {
await loading.dismiss();
}
}
Код: Выделить всё
constructor(private readonly ngZone: NgZone) {
FirebaseAuthentication.removeAllListeners().then(() => {
FirebaseAuthentication.addListener('phoneCodeSent', async (event) => {
this.ngZone.run(() => {
console.log("phoneCodeSent"+ event.verificationId);
});
});
FirebaseAuthentication.addListener(
'phoneVerificationCompleted',
async (event) => {
this.ngZone.run(() => {
console.log("phoneVerificationCompleted"+ event.user?.uid);
});
},
);
FirebaseAuthentication.addListener(
'phoneVerificationFailed',
async (event) => {
this.ngZone.run(() => {
console.log("phoneVerificationFailed"+ event.message);
});
},
);
});
}
Я ожидаю, что вызов FirebaseAuthentication.signInWithPhoneNumber(options) Firebase отправит SMS code и SignInWithPhoneNumber(options) для возврата объекта с информацией о пользователе или идентификатором проверки, который я могу использовать для проверки кода SMS. Вкратце, ПОЗВОЛЬТЕ ПРОИЗОЙТИ НЕКОТОРОЕ СОБЫТИЕ.
Фактическое поведение
При запуске этого кода на устройстве iOS консоль Xcode регистрирует следующее:
Код: Выделить всё
⚡️ [log] - Attempting to sign in with phone number: +573218116768
⚡️ To Native -> FirebaseAuthentication signInWithPhoneNumber 110818811
⚡️ TO JS undefined
⚡️ [log] - Sign-in successful
Код: Выделить всё
TO JSДополнительная информация
Конфигурация Firebase:
- Аутентификация телефона включена в Firebase Консоль.
- Файл GoogleService-Info.plist правильно настроен и синхронизирован
с проектом. - Тестовые номера телефонов настраиваются в Firebase, чтобы избежать отправки реальных
SMS-сообщений.
- Ионный: 8.x
- Угловой: ^18.x
- @capacitor-firebase/authentication: ^6.3.1
- Конденсатор: 6.x
- Конфигурация Firebase правильна ( за исключением APN, которые я
не настраивал, потому что понимаю, что для входа в систему с телефона это не требуется). - Номер телефона указан в международном формате.
- Плагины конденсаторов установлены и синхронизированы правильно.
- Что может вызвать SignInWithPhoneNumber не генерирует никаких событий, а Firebase не отправляет код SMS?
- Нужно ли настраивать сертификаты APN для SignInWithPhoneNumber будет работать на iOS, даже если я использую только аутентификацию по телефону?
Подробнее здесь: https://stackoverflow.com/questions/793 ... doesnt-wor
Мобильная версия