PhoneAuthProvider class

Proveedor para generar una PhoneAuthCredential.

PhoneAuthProvider no funciona en un entorno de Node.js.

Firma:

export declare class PhoneAuthProvider 

Constructores

Constructor Teclas modificadoras Descripción
(constructor)(autorización) Construye una instancia nueva de la clase PhoneAuthProvider.

Propiedades

Propiedad Teclas modificadoras Tipo Descripción
PHONE_SIGN_IN_METHOD static 'teléfono' Siempre se debe establecer en SignInMethod.PHONE.
ID_PROVEEDOR static 'teléfono' Siempre se establece en ProviderId.PHONE.
IDdeproveedor "teléfono" Siempre se establece en ProviderId.PHONE.

Métodos

Método Teclas modificadoras Descripción
credential(verificationId, verificationCode) static Crea una credencial de autenticación telefónica a partir del ID de verificación de PhoneAuthProvider.verifyPhoneNumber() y el código que se envió al dispositivo móvil del usuario.
credentialFromError(error) static Muestra una AuthCredential cuando se pasa un error.
credentialFromResult(userCredential) static Genera una AuthCredential a partir de una UserCredential.
verifyPhoneNumber(phoneOptions, applicationVerifier) Inicia un flujo de autenticación con el número de teléfono mediante el envío de un código de verificación al número de teléfono especificado.

PhoneAuthProvider.(constructor)

Construye una instancia nueva de la clase PhoneAuthProvider.

Firma:

constructor(auth: Auth);

Parámetros

Parámetro Tipo Descripción
auth Autenticación La instancia de Firebase Auth en la que deben ocurrir los accesos

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

Siempre se debe establecer en SignInMethod.PHONE.

Firma:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

Siempre se establece en ProviderId.PHONE.

Firma:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

Siempre se establece en ProviderId.PHONE.

Firma:

readonly providerId: "phone";

PhoneAuthProvider.credential()

Crea una credencial de autenticación telefónica a partir del ID de verificación de PhoneAuthProvider.verifyPhoneNumber() y el código que se envió al dispositivo móvil del usuario.

Firma:

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

Parámetros

Parámetro Tipo Descripción
IDdeverificación string El ID de verificación que muestra PhoneAuthProvider.verifyPhoneNumber().
Código de verificación string Es el código de verificación que se envía al dispositivo móvil del usuario.

Muestra:

PhoneAuthCredential

La credencial del proveedor de autenticación

Ejemplo 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);

Ejemplo 2

Se proporciona un flujo alternativo con el método signInWithPhoneNumber.

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

PhoneAuthProvider.credentialFromError()

Muestra una AuthCredential cuando se pasa un error.

Este método funciona para errores como auth/account-exists-with-different-credentials. Esto es útil para recuperarla cuando se intenta configurar el número de teléfono de un usuario, pero el número en cuestión ya está vinculado a otra cuenta. Por ejemplo, el siguiente código intenta actualizar el número de teléfono del usuario actual y, si eso falla, vincula al usuario con la cuenta asociada a ese número:

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.

Firma:

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

Parámetros

Parámetro Tipo Descripción
error FirebaseError. El error a partir del cual se genera una credencial.

Muestra:

AuthCredential | nulo

PhoneAuthProvider.credentialFromResult()

Genera una AuthCredential a partir de una UserCredential.

Firma:

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

Parámetros

Parámetro Tipo Descripción
Credencial de usuario Credencial de usuario Es la credencial de usuario.

Muestra:

AuthCredential | nulo

PhoneAuthProvider.verifyPhoneNumber()

Inicia un flujo de autenticación con el número de teléfono mediante el envío de un código de verificación al número de teléfono especificado.

Firma:

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

Parámetros

Parámetro Tipo Descripción
Opciones de teléfono PhoneInfoOptions | cadena
applicationVerifier ApplicationVerifier Para prevenir abusos, este método también requiere un ApplicationVerifier. Este SDK incluye una implementación basada en reCAPTCHA, RecaptchaVerifier.

Muestra:

Promesa<string>

Una promesa para un ID de verificación que se puede pasar a PhoneAuthProvider.credential() para identificar este flujo.

Ejemplo 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);

Ejemplo 2

Se proporciona un flujo alternativo con el método signInWithPhoneNumber.

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

Ejemplo

// '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);