PhoneAuthProvider class

Поставщик для создания PhoneAuthCredential .

PhoneAuthProvider не работает в среде Node.js.

Подпись:

export declare class PhoneAuthProvider 

Конструкторы

Конструктор Модификаторы Описание
(конструктор)(автор) Создает новый экземпляр класса PhoneAuthProvider

Характеристики

Свойство Модификаторы Тип Описание
PHONE_SIGN_IN_METHOD static 'телефон' Всегда установлено значение SignInMethod. .ТЕЛЕФОН.
PROVIDER_ID static 'телефон' Всегда установлено значение ProviderId. .ТЕЛЕФОН.
идентификатор поставщика "телефон" Всегда установлено значение ProviderId. .ТЕЛЕФОН.

Методы

Метод Модификаторы Описание
учетные данные (идентификатор проверки, код проверки) static Создает учетные данные аутентификации телефона на основе идентификатора проверки из PhoneAuthProvider.verifyPhoneNumber() и кода, который был отправлен на мобильное устройство пользователя.
credentialFromError (ошибка) static Возвращает AuthCredential при передаче ошибки.
credentialFromResult (userCredential) static Генерирует AuthCredential из UserCredential . .
verifyPhoneNumber(phoneOptions, applicationVerifier) Запускает процесс аутентификации номера телефона, отправляя код подтверждения на указанный номер телефона.

PhoneAuthProvider.(конструктор)

Создает новый экземпляр класса PhoneAuthProvider

Подпись:

constructor(auth: Auth);

Параметры

Параметр Тип Описание
авторизация Авторизация Экземпляр Firebase Auth , в котором должен происходить вход.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Всегда установлено значение SignInMethod. .ТЕЛЕФОН.

Подпись:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Всегда установлено значение ProviderId. .ТЕЛЕФОН.

Подпись:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Всегда установлено значение ProviderId. .ТЕЛЕФОН.

Подпись:

readonly providerId: "phone";

PhoneAuthProvider.credential()

Создает учетные данные аутентификации телефона на основе идентификатора проверки из PhoneAuthProvider.verifyPhoneNumber() и кода, который был отправлен на мобильное устройство пользователя.

Подпись:

static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;

Параметры

Параметр Тип Описание
идентификатор проверки нить Идентификатор проверки, возвращенный из PhoneAuthProvider.verifyPhoneNumber(). .
проверочный код нить Код подтверждения отправлен на мобильное устройство пользователя.

Возврат:

PhoneAuthCredential

Учетные данные поставщика аутентификации.

Пример 1

const provider = new PhoneAuthProvider(auth);
const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = signInWithCredential(auth, authCredential);

Пример 2

Альтернативный поток обеспечивается с помощью метода signInWithPhoneNumber .

const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = await confirmationResult.confirm(verificationCode);

PhoneAuthProvider.credentialFromError()

Возвращает AuthCredential при передаче ошибки.

Этот метод работает для таких ошибок, как auth/account-exists-with-different-credentials . Это полезно для восстановления при попытке установить номер телефона пользователя, но этот номер уже привязан к другой учетной записи. Например, следующий код пытается обновить номер телефона текущего пользователя, а если это не удается, связывает пользователя с учетной записью, связанной с этим номером:

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(number, verifier);
try {
  const code = ''; // Prompt the user for the verification code
  await updatePhoneNumber(
      auth.currentUser,
      PhoneAuthProvider.credential(verificationId, code));
} catch (e) {
  if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {
    const cred = PhoneAuthProvider.credentialFromError(e);
    await linkWithCredential(auth.currentUser, cred);
  }
}

// At this point, auth.currentUser.phoneNumber === number.

Подпись:

static credentialFromError(error: FirebaseError): AuthCredential | null;

Параметры

Параметр Тип Описание
ошибка FirebaseError Ошибка при создании учетных данных.

Возврат:

Авторизация | нулевой

PhoneAuthProvider.credentialFromResult()

Генерирует AuthCredential из UserCredential . .

Подпись:

static credentialFromResult(userCredential: UserCredential): AuthCredential | null;

Параметры

Параметр Тип Описание
userCredential Учетные данные пользователя Учетные данные пользователя.

Возврат:

Авторизация | нулевой

PhoneAuthProvider.verifyPhoneNumber()

Запускает процесс аутентификации номера телефона, отправляя код подтверждения на указанный номер телефона.

Подпись:

verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;

Параметры

Параметр Тип Описание
Параметры телефона ТелефонИнфоОпции | нить
applicationVerifier ПриложениеVerifier Для предотвращения злоупотреблений этому методу также требуется ApplicationVerifier . . Этот SDK включает реализацию на основе reCAPTCHA, RecaptchaVerifier. .

Возврат:

Обещание<строка>

Обещание для идентификатора проверки, который можно передать в PhoneAuthProvider.credential() для идентификации этого потока.

Пример 1

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, authCredential);

Пример 2

Альтернативный поток обеспечивается с помощью метода signInWithPhoneNumber .

const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = confirmationResult.confirm(verificationCode);

Пример

// 'recaptcha-container' is the ID of an element in the DOM.
const applicationVerifier = new RecaptchaVerifier('recaptcha-container');
const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);
// Obtain the verificationCode from the user.
const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, phoneCredential);